DRAFT PH Road Safety Implementation Guide, published by UP Manila - National Institutes of Health - National Telehealth Center. This guide is not an authorized publication; it is the continuous build for version 0.3.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/UPM-NTHC/PH-RoadSafetyIG/ and changes regularly. See the Directory of published versions
Data Modelling
This page gives a high level overview of the mapped FHIR resources from workshops (dot-vote priorities, ONEISS, ONEISS vs NHDR mapping), map MDS fields to FHIR resources (Observation, Encounter, Condition, DocumentReference, Procedure, Patient, Location, etc.) and note areas marked MUST SUPPORT.
Key decisions (high-level)
Use Observation for most scene/transport vitals, triage, collision/vehicle details and many external-cause elements.
Use Encounter for the transport/visit context and participant roles (team lead, treatment officer, transport officer, receiving staff).
Use DocumentReference for post-crash reports, attachments (cause of crash, party at fault, reconstruction materials).
Use Condition for diagnosis/icd-10/nature of injury.
Use Procedure for psychosocial support, coordination tasks, and other performed procedures.
Use Patient/Location/Organization references where appropriate for identifiers and facility information.
Generated Plantuml (v0.2)
Orphan resources RSObsTimelineDateReceived RSObsTimelineTimeEnroute RSObsTimelineTimeOnScene RSObsTimelineTimeDeparted RSObsTimelineTimeHospitalArrival RSObsTimelineTimeStationArrival RSAllergyIntolerance code.text : — [0..1] patient : — [1..1] patient : Reference(RSPatient) encounter : Reference(RSEncounter) patient : Reference(rs-example-patient) AllergyIntolerance RSPatient identifier : — [0..*] name : — [1..*] name.family : — [0..1] name.given : — [1..*] birthDate : — [0..1] telecom : — [0..*] address : — [0..*] address.line : — [0..*] address.extension : — [0..*] identifier : — [0..1] RSEncounter status : — [1..1] class : — [1..1] subject : — [1..1] period.start : — [1..1] serviceProvider : — [0..1] participant : — [0..*] hospitalization.dischargeDisposition : — [0..1] hospitalization.destination : — [0..1] location : — [0..1] location[accidentSite].location : — [1..1] location[facility].location : — [1..1] location[facility].location.type : — [0..1] identifier : — [1..*] identifier : — [0..1] hospitalization.origin : — [0..1] participant : — [0..1] participant[receivedBy].individual : — [0..1] participant[teamLeader].individual : — [0..1] participant[treatmentOfficer].individual : — [0..1] participant[transportOfficer].individual : — [0..1] participant[assistant].individual : — [0..1] extension : — [0..*] subject : Reference(RSPatient) serviceProvider : Reference(RSOrganization) location[accidentSite].location : Reference(RSIncidentLocation) location[facility].location : Reference(RSServiceLocation) hospitalization.origin : Reference(RSOrganization) participant[receivedBy].individual : Reference(PHCorePractitioner) participant[teamLeader].individual : Reference(PHCorePractitioner) participant[treatmentOfficer].individual : Reference(PHCorePractitioner) participant[transportOfficer].individual : Reference(PHCorePractitioner) participant[assistant].individual : Reference(PHCorePractitioner) rs-example-patient RSBundleMinimum type : — [1..1] entry : — [1..*] entry.resource : — [1..1] entry[patient].resource : RSPatient entry[encounter].resource : RSEncounter entry[allergyIntolerance].resource : RSAllergyIntolerance entry[medicationStatement].resource : RSMedicationStatement entry[task].resource : RSTask entry[location].resource : RSIncidentLocation entry[documentReference].resource : RSDocumentReference Bundle RSClaim patient : — [1..1] total : — [0..1] patient : Reference(RSPatient) patient : Reference(rs-example-patient) provider : Reference(rs-organization-single-ex) insurance[0].coverage : Reference(rs-example-coverage) beneficiary : Reference(rs-example-patient) subscriber : Reference(rs-example-patient) payor[0] : Reference(rs-organization-single-ex) Claim rs-organization-single-ex rs-example-coverage RSCondition subject : — [1..1] encounter : — [0..1] category : — [0..1] severity : — [0..1] code : — [0..1] code.text : — [0..1] onset[x] : — [0..1] note : — [0..*] subject : Reference(RSPatient) encounter : Reference(RSEncounter) Condition RSConditionInitialImpression code : — [0..1] category.coding : — [1..1] RSConditionFinalDiagnosis code : — [0..1] category.coding : — [1..1] RSConditionNatureOfInjury category : — [0..1] category.coding.system : — [0..1] category.coding.display : — [0..1] code : — [0..1] RSConditionExternalCause category : — [0..1] category.coding.system : — [0..1] category.coding.display : — [0..1] code : — [0..1] RSConditionProblem code : — [0..1] category.coding : — [1..1] RSDocumentReference status : — [1..1] type : — [0..1] subject : — [0..1] context.encounter : — [0..1] content : — [1..*] content.attachment.url : — [1..1] content.format : — [0..1] subject : Reference(RSPatient) context.encounter : Reference(RSEncounter) subject : Reference(rs-example-patient) context.encounter : Reference(rs-example-encounter) DocumentReference rs-example-encounter PHCoreEncounter RSOrganization active : — [0..1] type : — [0..*] name : — [1..1] identifier : — [0..*] telecom : — [0..*] address : — [0..*] RSIncidentLocation name : — [0..1] address : — [0..1] address.line : — [0..*] address.extension : — [0..*] position : — [0..1] position.longitude : — [1..1] position.latitude : — [1..1] PHCorePractitioner RSEncounterVehicleUsed valueCodeableConcept : — [1..1] valueCodeableConcept.text : — [1..1] subject : Reference(rs-example-patient) serviceProvider : Reference(rs-organization-single-ex) location[accidentSite].location : Reference(rs-example-incident-location) location[facility].location : Reference(rs-example-service-location-er) participant[receivedBy].individual : Reference(rs-practitioner-receivedby) participant[teamLeader].individual : Reference(rs-practitioner-teamlead) participant[treatmentOfficer].individual : Reference(rs-practitioner-treatment) hospitalization.origin : Reference(rs-organization-single-ex) hospitalization.destination : Reference(rs-example-service-location-er) rs-example-incident-location rs-example-service-location-er rs-practitioner-receivedby rs-practitioner-teamlead rs-practitioner-treatment PHCoreLocation RSMedicationStatement subject : — [1..1] effective[x] : — [0..1] medicationCodeableConcept : — [1..1] medicationCodeableConcept.text : — [1..1] subject : Reference(RSPatient) subject : Reference(rs-example-patient) MedicationStatement RSObservation status : — [1..1] subject : — [1..1] encounter : — [0..1] effective[x] : — [0..1] performer : — [0..*] value[x] : — [0..1] note : — [0..*] subject : Reference(RSPatient) encounter : Reference(RSEncounter) PHCoreObservation PHCoreOrganization RSHealthcareService active : — [0..1] type : — [0..*] name : — [0..1] identifier : — [0..*] telecom : — [0..*] providedBy : — [1..1] location : — [0..*] coverageArea : — [0..*] providedBy : Reference(RSOrganization) location : Reference(RSIncidentLocation) providedBy : Reference(rs-organization-single-ex) location[0] : Reference(rs-example-service-location-basic) HealthcareService rs-example-service-location-basic PHCorePatient RSProcedure status : — [1..1] code : — [0..1] subject : — [1..1] encounter : — [0..1] performer : — [0..*] note : — [0..*] subject : Reference(RSPatient) encounter : Reference(RSEncounter) performer.actor : Reference(PHCorePractitioner) PHCoreProcedure RSProcedureTransportCoordination code : — [1..1] code.coding : — [1..1] subject : Reference(rs-example-patient) encounter : Reference(rs-example-encounter) performer[0].actor : Reference(rs-practitioner-teamlead) ServiceRequest RSTask status : — [1..1] executionPeriod : — [0..1] note : — [0..*] for : — [0..1] focus : — [0..1] input : — [0..*] output : — [0..*] for : Reference(RSPatient) for : Reference(rs-example-patient) focus : Reference(rs-example-service-request) owner : Reference(rs-practitioner-receivedby) Task rs-example-service-request Obs (RS profiles) "RS Observation - Injury Intent" : Profile "RS Observation - External Cause: Bites/Stings" : Profile "RS Observation - External Cause: Burns" : Profile "RS Observation - External Cause: Chemical/Substance" : Profile "RS Observation - External Cause: Contact with Sharp Object" : Profile "RS Observation - External Cause: Drowning" : Profile "RS Observation - External Cause: Exposure to Forces of Nature" : Profile "RS Observation - External Cause: Fall" : Profile "RS Observation - External Cause: Firecracker" : Profile "RS Observation - External Cause: Gunshot" : Profile "RS Observation - External Cause: Hanging/Strangulation" : Profile "RS Observation - External Cause: Mauling/Assault" : Profile "RS Observation - Transport/Vehicular Accident" : Profile "RS Observation - External Cause: Other" : Profile "RS Observation - Transferred From Facility" : Profile "RS Observation - Referred By Facility" : Profile "RS Observation - Outcome at Release" : Profile "RS Observation - Run Report Comments" : Profile "RS Observation - Timeline Date/Time" : Profile "RS Observation - Respiratory Rate" : Profile "RS Observation - Pulse Rate" : Profile "RS Observation - Blood Pressure" : Profile "RS Observation - Body Temperature" : Profile "RS Observation - Pupils" : Profile "RS Observation - Cyanosis" : Profile "RS Observation - Glasgow Coma Scale" : Profile "RS Observation - Clinical Remarks" : Profile "RS Observation - Condition of Patient" : Profile "RS Observation - Triage Priority" : Profile "RS Observation - Status on Arrival" : Profile "RS Observation - Mode of Transport to Facility" : Profile "RS Observation - Reported Complaint" : Profile "RS Observation - Call Source" : Profile "RS Observation - How Many Vehicles Involved" : Profile "RS Observation - Date/Time of Injury" : Profile "RS Observation - Collision vs Non-Collision" : Profile "RS Observation - Patient's Vehicle" : Profile "RS Observation - Other Vehicle/Object Involved" : Profile "RS Observation - Position of Patient" : Profile "RS Observation - Place of Occurrence" : Profile "RS Observation - Activity at Time of Incident" : Profile "RS Observation - Blood Alcohol Concentration" : Profile "RS Observation - Multiple Injuries?" : Profile "RS Observation - Abrasion" : Profile "RS Observation - Avulsion" : Profile "RS Observation - External Cause: Burns" : Profile "RS Observation - Concussion" : Profile "RS Observation - Contusion" : Profile "RS Observation - Fracture" : Profile "RS Observation - Open Wound" : Profile "RS Observation - Traumatic Amputation" : Profile "RS Observation - Other Specified Injury" : Profile "RS Observation - Collision Type" : Profile "RS Observation - Presence of Traffic Investigator" : Profile "RS Observation - CCTV Available" : Profile "RS Observation - Other Risk Factors" : Profile "RS Observation - Safety Accessories" : Profile "RS Observation - External Cause: Sexual Assault/Abuse/Rape (Alleged)" : Profile "RS Observation - Level of Consciousness (AVPU)" : Profile "RS Observation - Priority Level (Urgency)" : Profile patient encounter patient patient patient beneficiary subscriber provider payor[0] insurance[0].coverage subject encounter subject context.encounter subject context.encounter subject serviceProvider hospitalization.origin location[accidentSite].location participant[receivedBy].individual participant[teamLeader].individual participant[treatmentOfficer].individual participant[transportOfficer].individual participant[assistant].individual subject serviceProvider hospitalization.origin location[accidentSite].location location[facility].location hospitalization.destination participant[receivedBy].individual participant[teamLeader].individual participant[treatmentOfficer].individual subject subject subject encounter providedBy location providedBy location[0] subject encounter performer.actor subject encounter performer[0].actor for for focus owner profiles
Manually created Plantuml
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
RSPatient Name ID RSEncounter ID patient location[accidentSite] location[facility] hospitalization.origin RSObservation code patient encounter value[x] RSCondition code patient encounter RSAllegyIntolerance code patient encounter RSProcedure code subject encounter practitioner PHCorePractitioner ID RSServiceLocation ID patient RSOrganization ID patient RSIncidentLocation ID position.longitude position.latitude RSHealthcareService ID location providedBy RSTask for focus owner RSMedicationStatement subject ServiceRequest ID RSDocumentReference subject context.encounter RSMedicationStatement patient provider
Mermaid diagram (simplified v0.1)
flowchart LR
Patient[Patient]
Encounter[Encounter]
Observation[Observation]
Condition[Condition]
Procedure[Procedure]
DocumentReference[DocumentReference]
Location[Location]
Organization[Organization]
Patient -->|subject of| Encounter
Encounter -->|has observations| Observation
Encounter -->|has diagnoses| Condition
Encounter -->|has procedures| Procedure
Encounter -->|serviceProvider| Organization
Encounter -->|occursAt| Location
Observation -->|derivedFrom| DocumentReference
DocumentReference -->|attachment for| Encounter
style Patient fill:#f9f,stroke:#333,stroke-width:1px
style Observation fill:#ff9,stroke:#333,stroke-width:1px