/// <summary> /// Create the component to add to the document /// </summary> /// <returns></returns> public override POCD_MT000040Component3 ToPocdComponent() { if ((string.IsNullOrWhiteSpace(this.Narrative)) && (this.MenstrualHistoryObservations.Count == 0)) { this.Narrative = "(No Data)"; } POCD_MT000040Component3 returnVal = base.ToPocdComponent(); // *** And entries *** List <POCD_MT000040Entry> entryList = new List <POCD_MT000040Entry>(); // *** Create an entry *** POCD_MT000040Entry newEntry = new POCD_MT000040Entry(); // *** Create menstrual history organizer *** POCD_MT000040Organizer organizer = new POCD_MT000040Organizer(); // *** Set the organizer attributes *** //organizer.classCode = x_ActClassDocumentEntryOrganizer.CLUSTER; organizer.moodCode = "EVN"; organizer.statusCode = new CS() { code = "active" }; // *** Menstrual History Organizer Code *** CdaCode orgCode = new CdaCode() { Code = "49033-4", CodeSystem = CodingSystem.Loinc, DisplayName = "Menstrual History" }; organizer.code = orgCode.ToCD(); // *** Create a list of components for the observations *** List <POCD_MT000040Component4> componentList = new List <POCD_MT000040Component4>(); foreach (var item in this.MenstrualHistoryObservations) { // *** Create a component *** POCD_MT000040Component4 component = new POCD_MT000040Component4(); // *** Add observation to component *** component.Item = item.ToPocd(); // *** Add component to list *** componentList.Add(component); } // *** Add component array to organizer *** organizer.component = componentList.ToArray(); // *** Add organizer to entry *** newEntry.Item = organizer; // *** Add entry to the list *** entryList.Add(newEntry); // *** Add entry list to section *** returnVal.section.entry = entryList.ToArray(); return(returnVal); }
/// <summary> /// Create the component to add to the document /// </summary> /// <returns></returns> public override POCD_MT000040Component5 ToPocdComponent5() { if (this.Observations.Count == 0) { this.Narrative = "(No Data)"; } POCD_MT000040Component5 returnVal = base.ToPocdComponent5(); // *** Check if we have entries *** if (this.Observations.Count > 0) { // *** And entries *** List <POCD_MT000040Entry> entryList = new List <POCD_MT000040Entry>(); // *** Create an entry *** POCD_MT000040Entry newEntry = new POCD_MT000040Entry(); // *** Create vital signs organizer *** POCD_MT000040Organizer organizer = new POCD_MT000040Organizer(); // *** Set the organizer attributes *** organizer.classCode = x_ActClassDocumentEntryOrganizer.CLUSTER; organizer.moodCode = "EVN"; // *** Template Id's *** CdaTemplateIdList orgIds = new CdaTemplateIdList("2.16.840.1.113883.10.20.1.32", "2.16.840.1.113883.10.20.1.35", "1.3.6.1.4.1.19376.1.5.3.1.4.13.1"); organizer.templateId = orgIds.ToPocd(); // *** Vital Signs Organizer Code *** CdaCode orgCode = new CdaCode() { Code = "46680005", CodeSystem = CodingSystem.SnomedCT, DisplayName = "Vital Signs" }; organizer.code = orgCode.ToCD(); // *** Organizer shall have id *** organizer.id = new II[] { new II() { root = Guid.NewGuid().ToString() } }; organizer.statusCode = new CS() { code = "completed" }; // *** Note: Using first observation's date/time *** // *** Effective Time of observations *** organizer.effectiveTime = this.Observations[0].EffectiveTime.ToIvlTs(); // *** Create a list of components for the observations *** List <POCD_MT000040Component4> componentList = new List <POCD_MT000040Component4>(); foreach (var item in this.Observations) { // *** Create a component *** POCD_MT000040Component4 component = new POCD_MT000040Component4(); // *** Add observation to component *** component.Item = item.ToPocd(); // *** Add component to list *** componentList.Add(component); } // *** Add component array to organizer *** organizer.component = componentList.ToArray(); // *** Add organizer to entry *** newEntry.Item = organizer; // *** Add entry to the list *** entryList.Add(newEntry); // *** Add entry list to section *** returnVal.section.entry = entryList.ToArray(); } return(returnVal); }