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.2.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)
RSAllergyIntolerance code : — [0..1] patient : — [1..1] patient : Reference(RSPatient) encounter : Reference(RSEncounter) AllergyIntolerance RSPatient identifier : — [0..*] name : — [1..*] name.family : — [0..1] name.given : — [1..*] name.given : — [1..2] name.given : — [0..1] birthDate : — [0..1] telecom : — [0..*] address : — [0..*] address.line : — [0..*] address.extension : — [0..*] RSEncounter status : — [1..1] class : — [1..1] identifier : — [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 : — [0..1] identifier[incidentNumber].type : — [1..1] identifier[incidentNumber].type.coding : — [1..1] identifier[hospitalCaseNo].type : — [1..1] identifier[hospitalCaseNo].type.coding : — [1..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] 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) RSCompositionEMS status : — [1..1] subject : — [1..1] date : — [1..1] author : — [1..1] section : — [1..*] section[workflow].entry : — [1..*] section[workflow].entry : Reference section[incident].entry : — [0..*] section[incident].entry : Reference section[vitals].entry : — [0..*] section[vitals].entry : Reference section[clinical].entry : — [0..*] section[documents].entry : — [0..*] section[procedures].entry : — [0..*] subject : Reference(RSPatient) section[clinical].entry : Reference(RSObsClinicalRemarks | RSProcedure | RSCondition) section[documents].entry : Reference(RSDocumentReference) section[procedures].entry : Reference(RSProcedure | RSServiceRequest | RSTask) Composition 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) 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) 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) RSTask status : — [1..1] executionPeriod : — [0..1] note : — [0..*] for : — [0..1] focus : — [0..1] input : — [0..*] output : — [0..*] for : Reference(RSPatient) RSBundleEMS type : — [1..1] entry : — [1..*] entry.resource : — [1..1] entry[composition].resource : RSCompositionEMS entry[patient].resource : RSPatient entry[encounter].resource : RSEncounter entry[location].resource : RSIncidentLocation entry[observationDateReceived].resource : RSObsDateReceived entry[observationTimeEnroute].resource : RSObsTimeEnroute entry[observationTimeOnScene].resource : RSObsTimeOnScene entry[observationTimeDeparted].resource : RSObsTimeDepartedScene entry[observationTimeHospitalArrival].resource : RSObsTimeHospitalArrival entry[observationTimeStationArrival].resource : RSObsTimeStationArrival entry[observationVitals].resource : RSObsRespiratoryRate entry[observationGCS].resource : RSObsGCS entry[observationReportedComplaint].resource : RSObsReportedComplaint entry[observationCallSource].resource : RSObsCallSource entry[observationVehicleUsed].resource : RSObsVehicleUsed entry[observationRunReportComments].resource : RSObsRunReportComments entry[observationClinicalRemarks].resource : RSObsClinicalRemarks entry[document].resource : RSDocumentReference entry[task].resource : RSTask entry[serviceRequest].resource : RSServiceRequest entry[procedure].resource : RSProcedure entry[claim].resource : RSClaim Bundle RSCompositionONEISS status : — [1..1] subject : — [1..1] date : — [1..1] author : — [1..1] section : — [1..*] section[patient].entry : — [1..1] section[encounter].entry : — [1..1] section[clinical].entry : — [0..*] section[clinical].entry : Reference section[injuries].entry : — [0..*] section[injuries].entry : Reference section[incident].entry : — [0..*] section[incident].entry : Reference section[documents].entry : — [0..*] subject : Reference(RSPatient) section[patient].entry : Reference(RSPatient) section[encounter].entry : Reference(RSEncounter) section[documents].entry : Reference(RSDocumentReference) RSBundleONEISS type : — [1..1] entry : — [1..*] entry.resource : — [1..1] entry[composition].resource : RSCompositionONEISS entry[patient].resource : RSPatient entry[encounter].resource : RSEncounter entry[conditionInitial].resource : RSConditionInitialImpression entry[conditionFinal].resource : RSConditionFinalDiagnosis entry[observationClinical].resource : RSObsOtherRiskFactors entry[observationIncident].resource : RSObsInjuryDateTime entry[observationExternalCause].resource : RSObsECBitesStings entry[observationInjuries].resource : RSObsMultipleInjuries entry[observationExtentOfInjury].resource : RSObsExtentOfInjury entry[observationTransferredFromFacility].resource : RSObsTransferredFromFacility entry[observationReferredByFacility].resource : RSObsReferredByFacility entry[document].resource : RSDocumentReference entry[serviceRequest].resource : RSServiceRequest entry[procedure].resource : RSProcedure RSCompositionPostCrash status : — [1..1] subject : — [1..1] date : — [1..1] author : — [1..*] section : — [1..*] section[patient].entry : — [1..1] section[incident].entry : — [0..*] section[incident].entry : Reference section[documents].entry : — [0..*] subject : Reference(RSPatient) section[patient].entry : Reference(RSPatient) section[documents].entry : Reference(RSDocumentReference) RSBundlePostCrash type : — [1..1] entry : — [1..*] entry.resource : — [1..1] entry[composition].resource : RSCompositionPostCrash entry[patient].resource : RSPatient entry[encounter].resource : RSEncounter entry[observationPostCrash].resource : RSObsCollisionType entry[document].resource : RSDocumentReference RSClaim patient : — [1..1] total : — [0..1] patient : Reference(RSPatient) Claim Condition RSConditionProblem code : — [0..1] category.coding : — [1..1] RSConditionInitialImpression code : — [0..1] category.coding : — [1..1] RSConditionFinalDiagnosis code : — [0..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] DocumentReference 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 PHCoreLocation RSMedicationStatement subject : — [1..1] effective[x] : — [0..1] medicationCodeableConcept : — [1..1] medicationCodeableConcept.text : — [1..1] subject : Reference(RSPatient) MedicationStatement RSObservation status : — [1..1] subject : — [1..1] code : — [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) HealthcareService PHCorePatient PHCoreProcedure RSProcedureTransportCoordination code : — [1..1] code.coding : — [1..1] ServiceRequest Task Obs (RS profiles) "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 - Respiratory Rhythm" : Profile "RS Observation - Breath Sounds" : Profile "RS Observation - Pulse Rhythm" : Profile "RS Observation - Pulse Quality" : Profile "RS Observation - Date/Time Received by EMS" : Profile "RS Observation - Time Received" : Profile "RS Observation - Time Enroute" : Profile "RS Observation - Time On Scene" : Profile "RS Observation - Time Departed Scene" : Profile "RS Observation - Time of Hospital Arrival" : Profile "RS Observation - Time of Emergency Station Arrival" : Profile "RS Observation - Date/Time of Injury" : Profile "RS Observation - Date of Injury" : Profile "RS Observation - Time of Injury" : Profile "RS Observation - Injury Intent" : Profile "RS Observation - Transport/Vehicular Accident" : Profile "RS Observation - Mode of Transport to Facility" : Profile "RS Observation - Date of Consultation" : Profile "RS Observation - Time of Consultation" : Profile "RS Observation - Triage Priority" : Profile "RS Observation - Place of Occurrence" : Profile "RS Observation - Activity at Time of Incident" : 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 - How Many Vehicles Involved" : Profile "RS Observation - How Many Patients Involved" : Profile "RS Observation - Collision Type" : Profile "RS Observation - Presence of Traffic Investigator" : Profile "RS Observation - Other Risk Factors" : Profile "RS Observation - Safety Accessories" : Profile "RS Observation - Reported Complaint" : Profile "RS Observation - Call Source" : Profile "RS Observation - External Cause: Bites/Stings" : Profile "RS Observation - External Cause: Burns" : 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 - External Cause: Other" : Profile "RS Observation - Extent of Injury" : Profile "RS Observation - Transferred From Facility" : Profile "RS Observation - Referred By Facility" : Profile "RS Observation - Multiple Injuries?" : Profile "RS Observation - Abrasion" : Profile "RS Observation - Avulsion" : 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 - Blood Alcohol Concentration" : Profile "RS Observation - Condition of Patient" : Profile "RS Observation - Outcome at Release" : Profile "RS Observation - Outcome at Discharge" : Profile "RS Observation - Status on Arrival" : Profile "RS Observation - If Alive: Conscious/Unconscious" : Profile "RS Observation - Vehicle Used" : Profile "RS Observation - Clinical Remarks" : Profile "RS Observation - Run Report Comments" : Profile "RS Observation - CCTV Available" : Profile "RS Observation - Level of Consciousness (AVPU)" : Profile "RS Observation - Priority Level (Urgency)" : Profile "RS Observation - External Cause: Sexual Assault/Abuse/Rape (Alleged)" : Profile patient encounter subject section[clinical].entry section[procedures].entry section[clinical].entry section[documents].entry section[procedures].entry subject section[patient].entry section[encounter].entry section[documents].entry subject section[patient].entry section[documents].entry patient subject 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 subject encounter providedBy location subject encounter performer.actor for profiles
Manually created Plantuml
PH Road Safety IG - UML Class Diagram PH Road Safety IG - UML Class Diagram RS_Patient identifier birthDate address managingOrganization InjuryObservation status category code subject -> RS_Patient encounter -> RoadSafetyEncounter component RoadSafetyEncounter identifier status subject -> RS_Patient location RoadSafetyClaim total encounter -> RoadSafetyEncounter HospitalAvailable name category location active RoadSafetyDocumentReference status category relatesTo -> DocumentReference context.encounter -> RoadSafetyEncounter RoadSafetyMedicationStatement status medicationCodeableConcept subject -> RS_Patient RoadSafetyProcedure status code subject -> RS_Patient performer -> PHCorePractitioner RoadSafetyQuestionnaire status name title item RoadSafetyServiceRequest status = revoked encounter -> RoadSafetyEncounter supportingInfo[hospital] -> PHCoreOrganization supportingInfo[physician] -> PHCorePractitioner RoadSafetyTask status executionPeriod note has observations 1 0..* undergoes 1 0..* takes 1 0..* related claim 1 0..* subject 1 1 procedures 1 0..* observations 1 0..* documents 1 0..* refusal records 1 0..* referral context 1 0..*
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