/// <summary> /// Save dispanserisation case to XML /// </summary> /// <param name="xml">XML exporter to save into</param> /// <param name="pool">Datapool</param> /// <param name="irec">Invoice record to which this event belongs</param> public void WriteD3(Lib.XmlExporter xml, Data.IInvoice pool, InvoiceRecord irec, Recourse rec) { xml.Writer.WriteStartElement("SL"); xml.Writer.WriteElementString("SL_ID", Identity); xml.WriteIfValid("LPU_1", Unit); #if FOMS xml.WriteIfValid("PODR", rec.Department); xml.Writer.WriteElementString("PROFIL", rec.Profile); xml.WriteBool("DET", Child); xml.Writer.WriteElementString("CEL", LocalReason); #endif xml.Writer.WriteElementString("NHISTORY", CardNumber); xml.Writer.WriteElementString("DATE_1", DateFrom.AsXml()); xml.Writer.WriteElementString("DATE_2", DateTill.AsXml()); xml.Writer.WriteElementString("DS1", MainDiagnosis); if (FirstIdentified) { xml.Writer.WriteElementString("DS1_PR", "1"); } #if FOMS // 20190930 C_ZAB не фигурирует в разделе D3, но ФОМС ставит ошибку // Исправлено в Барс 20190930 //xml.WriteIfValid("C_ZAB", StatisticsCode); xml.WriteBool("DS_ONK", rec.SuspectOncology); if (DispensarySupervision >= DispensarySupervision.Observed && DispensarySupervision <= DispensarySupervision.NotSubject) { xml.Writer.WriteElementString("PR_D_N", ((int)DispensarySupervision).ToString()); } #else if (rec.SuspectOncology) { xml.Writer.WriteElementString("DS_ONK", "1"); } xml.Writer.WriteElementString("PR_D_N", ((int)DispensarySupervision).ToString()); #endif foreach (ConcomitantDisease d in pool.GetConcomitantDiseases(irec, this)) { d.Write(xml); } #if FOMS xml.Writer.WriteElementString("PRVS", SpecialityCode); #endif foreach (DispAssignment d in pool.GetDispanserisationAssignments(rec, this)) { d.Write(xml); } if (Quantity > 0) { xml.Writer.WriteElementString("ED_COL", Quantity.ToString("F2", Options.NumberFormat)); } if (Tariff > 0) { xml.Writer.WriteElementString("TARIF", Tariff.ToString("F2", Options.NumberFormat)); } xml.Writer.WriteElementString("SUM_M", Total.ToString("F2", Options.NumberFormat)); // Сведения об услуге // Описывает услуги, оказанные в рамках данного случая. // Допускается указание услуг с нулевой стоимостью. // Указание услуг с нулевой стоимостью обязательно, если условие их оказания является тарифообразующим (например, при оплате по КСГ). foreach (Service s in Services) { s.WriteD3(xml, pool, irec, rec, this); } xml.WriteIfValid("COMENTSL", Comment); xml.Writer.WriteEndElement(); }