Skip to content

Conversation

@Ritakoubeh
Copy link

This PR adds the AIS_From_School_Screening_to_SOSORT_Recommendations.json module, which simulates the workflow of Adolescent Idiopathic Scoliosis (AIS) from school screening to SOSORT 2016 treatment recommendations.

The module includes:

  • Patient encounters, referrals, radiographic assessments, and treatment decisions.
  • Fully synthetic data; customizable for research or simulation purposes.

Contributors:

Synthetic Synthea module simulating the workflow of Adolescent Idiopathic Scoliosis (AIS) from school screening to SOSORT 2016 treatment recommendations. 
Includes patient encounters, referrals, radiographic assessments, and treatment decisions. Fully synthetic data; customizable for research or simulation purposes.

Contributors: 
- @Ritakoubeh (Reem Koubeh)
- Mohammad Firas Wahbeh
- Daoud Karakola
Update AIS_From_School_Screening_to_SOSORT_Recommendations.json
Update AIS_From_School_Screening_to_SOSORT_Recommendations.json
@firas1313
Copy link

well done

@Ritakoubeh
Copy link
Author

Module_Companion_Guide_Adolescents_Idiopathic_Scoliosis.pdf

As requested by Dylan, attaching the Companion Guide for the AIS module.

This document contains:

  • Complete clinical pathway diagrams
  • Module documentation and validation details
  • Implementation notes and clinical rationale

@Ritakoubeh
Copy link
Author

Hello @synthetichealth team,

Here is a final update on the status of this PR:

✅ Core CI checks (Java 11 & 17) have passed successfully. This confirms that the AIS module builds and integrates correctly with the latest Synthea codebase.

❌ The Deploy check has failed with the error: Error: API_TOKEN_GITHUB and SSH_DEPLOY_KEY are empty.

As expected, this failure is due to the project's internal deployment security settings (missing secrets that are only available to the core team) and is not related to the code changes in this PR.

Therefore, this contribution is technically complete and ready for your human review. The complete module and its Companion Guide are attached.

Thank you for your time and consideration.

Best regards,
The AIS Module Development Team
Reem Koubeh
Daoud Karakolah
Mohammad Firas Wahbeh

@Ritakoubeh
Copy link
Author

@jawalonoski Hi Jason. A gentle check-in on PR #1631 (AIS module).

We wanted to ensure there are no hidden issues from our side, as the module has been technically complete for a while. We totally understand maintainer workloads are heavy.

Is there anything we can clarify or adjust to help with the review? We greatly appreciate your time and this project.

@jawalonoski
Copy link
Member

Apologies for the delay.

I do appreciate the module companion guide. However, after a technical review, there are some issues with the module that need to be addressed.

Adolescent_Idiopathic_Scoliosis state - the SNOMED description is not correct (this applies to several code descriptions throughout the module -- the descriptions should match the official description because some of the standardized outputs may have validation issues otherwise). You could put the "AIS starts before detection" comment in the "remarks" field if you want to retain the comment. However, this ConditionOnset should also have a "Target Encounter", probably Followup_Orthopaedic_Encounter. Also, this condition will be record for every newborn baby (you can confirm this by checking the output data if you set exporter.years_of_history to 0 which skips filtering), because the condition onset is immediately after Initial (i.e., birth) and prior to any guard or delay.

Age_Guard - all patients will pass through this state at age 10. You probably want to combine an "age >= 10"guard with a delay of "0 - 8 years".

The next three states: Scoliosis_School_Screening, Position_of_Body_and_Posture, and Referral_to_Orthopaedic_Surgeon occur outside any encounter. You may want to wrap them inside a Wellness Encounter, then add a delay in between that and the Orthopaedic_Encounter.

Similarly, Plain_X-Ray_Spine_and_Pelvis takes place outside an encounter. It needs to be contained between an Encounter and EncounterEnd, otherwise behavior is undefined.

The module ends with the possibility of multiple referrals, including spinal surgery, none of which are ever implemented. Generally, when we create referrals, the appropriate Encounter should be simulated somewhere. Although, I suppose for some of the minor ones (e.g., exercise) this is not strictly necessary.

Finally, the module has an AIS prevalence rate of 100% of the population. So, I would suggest adding a distributed transition near the beginning to filter out patients who will never get the disease.

I'm attaching some (but not all) of these changes for you to review for illustration purposes, and then address if possible.

ais_from_school_screening_to_sosort_recommendations (1).json

@Ritakoubeh
Copy link
Author

Hi @jawalonoski,

Thank you for the comprehensive technical review! We truly appreciate the detailed feedback and the example file you provided.

We're addressing all 7 points from your review:

  1. ✅ Correcting all SNOMED descriptions to official terminology
  2. ✅ Adding target_encounter to ConditionOnset states
  3. ✅ Revising Age_Guard with appropriate delay ranges
  4. ✅ Wrapping initial screening states in Wellness Encounter
  5. ✅ Placing X-Ray and all procedures inside proper Encounters
  6. ✅ Adding symbolic Encounters for major referrals
  7. ✅ Implementing distributed transition for realistic AIS prevalence

We're working through these updates systematically and will notify you when the module is ready for re-review. Your guidance is invaluable for ensuring clinical accuracy and technical compliance.

Best regards,
The AIS Module Team
Reem Koubeh
Daoud Karakolah
Mohammad Firas Wahbeh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants