public void WriteD4(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); xml.WriteIfValid("PODR", rec.Department); xml.Writer.WriteElementString("PROFIL", rec.Profile); xml.WriteIfValid("PROFIL_K", BedProfile); xml.WriteBool("DET", Child); xml.WriteIfValid("P_CEL", Reason); #if FOMS xml.Writer.WriteElementString("CEL", LocalReason); #endif xml.Writer.WriteElementString("NHISTORY", CardNumber); if (Transfer != Model.Transfer.None) { xml.Writer.WriteElementString("P_PER", ((int)Transfer).ToString()); } xml.Writer.WriteElementString("DATE_1", DateFrom.AsXml()); xml.Writer.WriteElementString("DATE_2", DateTill.AsXml()); if (BedDays > 0) { xml.Writer.WriteElementString("KD", BedDays.ToString()); } xml.WriteIfValid("DS0", PrimaryDiagnosis); xml.Writer.WriteElementString("DS1", MainDiagnosis); // Диагноз сопутствующего заболевания // Код из справочника МКБ-10 до уровня подрубрики, если она предусмотрена МКБ-10 (неуказание подрубрики допускается для случаев оказания скорой медицинской помощи). // Указывается в случае установления в соответствии с медицинской документацией. if (ConcurrentDiagnoses != null) { foreach (string ds in ConcurrentDiagnoses) { xml.Writer.WriteElementString("DS2", ds); } } // Диагноз осложнения заболевания // Код из справочника МКБ-10 до уровня подрубрики, если она предусмотрена МКБ-10 (неуказание подрубрики допускается для случаев оказания скорой медицинской помощи). // Указывается в случае установления в соответствии с медицинской документацией. if (ComplicationDiagnoses != null) { foreach (string ds in ComplicationDiagnoses) { xml.Writer.WriteElementString("DS3", ds); } } xml.WriteIfValid("C_ZAB", StatisticsCode); xml.WriteBool("DS_ONK", rec.SuspectOncology); if (DispensarySupervision != Model.DispensarySupervision.None) { xml.Writer.WriteElementString("DN", ((int)DispensarySupervision).ToString()); } // Код МЭС // Классификатор МЭС. Указывается при наличии утвержденного стандарта. foreach (string mes in pool.LoadMesCodes(irec, rec, this)) { xml.Writer.WriteElementString("CODE_MES1", mes); } xml.WriteIfValid("CODE_MES2", ConcurrentMesCode); foreach (OncologyDirection dir in pool.LoadOncologyDirections(rec, this)) { dir.Write(xml); } foreach (OncologyConsilium c in pool.LoadOncologyConsilium(rec, this)) { c.Write(xml); } // Не на дому, не реабилитация и не подозрение if (!Rehabilitation && !rec.SuspectOncology && rec.Conditions != "4") { OnkologyTreat treat = pool.GetOnkologyTreat(rec, this); if (treat != null) { if (string.IsNullOrEmpty(treat.Stage)) { Console.WriteLine("Пустая стадия для онкологии. Случай " + this.Identity); } treat.Write(xml, pool); } } if (ClinicalGroup != null) { ClinicalGroup.Write(xml, pool, this); } if (Rehabilitation) { xml.Writer.WriteElementString("REAB", "1"); } xml.Writer.WriteElementString("PRVS", SpecialityCode); // Код классификатора медицинских специальностей // Указывается имя используемого классификатора медицинских специальностей xml.Writer.WriteElementString("VERS_SPEC", Options.SpecialityClassifier); xml.Writer.WriteElementString("IDDOKT", DoctorCode); 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.WriteD4(xml, pool, irec, rec, this); } xml.WriteIfValid("COMENTSL", Comment); xml.Writer.WriteEndElement(); }
/// <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(); }
public void WriteD4(Lib.XmlExporter xml, Data.IInvoice pool, InvoiceRecord irec) { xml.Writer.WriteStartElement("Z_SL"); xml.Writer.WriteElementString("IDCASE", Identity); xml.Writer.WriteElementString("USL_OK", Conditions); xml.Writer.WriteElementString("VIDPOM", AidKind.ToString()); xml.Writer.WriteElementString("FOR_POM", AidForm.ToString()); if (!string.IsNullOrEmpty(DirectedFrom)) { xml.Writer.WriteElementString("NPR_MO", DirectedFrom); xml.Writer.WriteElementString("NPR_DATE", DirectionDate.AsXml()); } xml.Writer.WriteElementString("LPU", Options.LpuCode); xml.Writer.WriteElementString("DATE_Z_1", DateFrom.AsXml()); xml.Writer.WriteElementString("DATE_Z_2", DateTill.AsXml()); if (BedDays > 0) { xml.Writer.WriteElementString("KD_Z", BedDays.ToString()); } if (BirthWeight > 0) { xml.Writer.WriteElementString("VNOV_M", BirthWeight.ToString()); } xml.Writer.WriteElementString("RSLT", Result); xml.Writer.WriteElementString("ISHOD", Outcome); if (specialCase != null) { foreach (SpecialCase c in specialCase) { xml.Writer.WriteElementString("OS_SLUCH", ((int)c).ToString()); } } if (UnitShift) { xml.Writer.WriteElementString("VB_P", "1"); } foreach (Event e in Events) { e.WriteD4(xml, pool, irec, this); } xml.Writer.WriteElementString("IDSP", PayKind); xml.Writer.WriteElementString("SUMV", Total.ToString("F2", Options.NumberFormat)); if (PayType != Model.PayType.None) { xml.Writer.WriteElementString("OPLATA", ((int)PayType).ToString()); } if (AcceptedSum > 0) { xml.Writer.WriteElementString("SUMP", AcceptedSum.ToString("F2", Options.NumberFormat)); } foreach (Sanction s in pool.LoadSanctions(irec, this)) { s.Write(xml, pool); } if (DeniedSum > 0) { xml.Writer.WriteElementString("SANKIT", DeniedSum.ToString("F2", Options.NumberFormat)); } xml.Writer.WriteEndElement(); }
/// <summary> /// Save hi-tech aid 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 WriteD2(Lib.XmlExporter xml, Data.IInvoice pool, InvoiceRecord irec, Recourse rec) { xml.Writer.WriteStartElement("SL"); xml.Writer.WriteElementString("SL_ID", Identity); xml.Writer.WriteElementString("VID_HMP", HiTechKind); xml.Writer.WriteElementString("METOD_HMP", HiTechMethod); xml.WriteIfValid("LPU_1", Unit); xml.WriteIfValid("PODR", rec.Department); xml.Writer.WriteElementString("PROFIL", rec.Profile); xml.WriteIfValid("PROFIL_K", BedProfile); xml.WriteBool("DET", Child); #if FOMS xml.Writer.WriteElementString("CEL", LocalReason); #endif xml.Writer.WriteElementString("TAL_D", HiTechCheckDate.AsXml()); xml.Writer.WriteElementString("TAL_NUM", HiTechCheckNumber); xml.Writer.WriteElementString("TAL_P", HiTechPlannedHospitalizationDate.AsXml()); xml.Writer.WriteElementString("NHISTORY", CardNumber); xml.Writer.WriteElementString("DATE_1", DateFrom.AsXml()); xml.Writer.WriteElementString("DATE_2", DateTill.AsXml()); xml.WriteIfValid("DS0", PrimaryDiagnosis); xml.Writer.WriteElementString("DS1", MainDiagnosis); if (ConcurrentDiagnoses != null) { foreach (string ds in ConcurrentDiagnoses) { xml.Writer.WriteElementString("DS2", ds); } } if (ComplicationDiagnoses != null) { foreach (string ds in ComplicationDiagnoses) { xml.Writer.WriteElementString("DS3", ds); } } if (rec.SuspectOncology) { xml.Writer.WriteElementString("DS_ONK", "1"); } foreach (string mes in pool.LoadMesCodes(irec, rec, this)) { xml.Writer.WriteElementString("CODE_MES1", mes); } xml.WriteIfValid("CODE_MES2", ConcurrentMesCode); isOncology = OnkologyTreat.IsOnkologyTreat(rec, this, pool); if (isOncology) { OnkologyTreat treat = pool.GetOnkologyTreat(rec, this); if (treat != null) { if (string.IsNullOrEmpty(treat.Stage)) { Console.WriteLine("Пустая стадия для онкологии. Случай " + this.Identity); } treat.Write(xml, pool); } } xml.Writer.WriteElementString("PRVS", SpecialityCode); xml.Writer.WriteElementString("VERS_SPEC", Options.SpecialityClassifier); xml.Writer.WriteElementString("IDDOKT", DoctorCode); 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.WriteD2(xml, pool, irec, rec, this); } xml.WriteIfValid("COMENTSL", Comment); xml.Writer.WriteEndElement(); }
public void WriteD3(Lib.XmlExporter xml, Data.IInvoice pool, InvoiceRecord irec) { xml.Writer.WriteStartElement("Z_SL"); xml.Writer.WriteElementString("IDCASE", Identity); #if FOMS xml.Writer.WriteElementString("USL_OK", Conditions); #endif xml.Writer.WriteElementString("VIDPOM", AidKind.ToString()); #if FOMS xml.Writer.WriteElementString("FOR_POM", AidForm.ToString()); #endif xml.Writer.WriteElementString("LPU", Options.LpuCode); // Dinamically? xml.WriteBool("VBR", MobileBrigade); xml.Writer.WriteElementString("DATE_Z_1", DateFrom.AsXml()); xml.Writer.WriteElementString("DATE_Z_2", DateTill.AsXml()); // Dynamically xml.WriteBool("P_OTK", DispanserisationRefusal); xml.Writer.WriteElementString("RSLT_D", DispanserisationResult); #if FOMS xml.Writer.WriteElementString("ISHOD", Outcome); #endif if (specialCase != null) { foreach (SpecialCase c in specialCase) { xml.Writer.WriteElementString("OS_SLUCH", ((int)c).ToString()); } } foreach (Event e in Events) { e.WriteD3(xml, pool, irec, this); } xml.Writer.WriteElementString("IDSP", PayKind.ToString()); xml.Writer.WriteElementString("SUMV", Total.ToString("F2", Options.NumberFormat)); if (PayType != Model.PayType.None) { xml.Writer.WriteElementString("OPLATA", ((int)PayType).ToString()); } if (AcceptedSum > 0) { xml.Writer.WriteElementString("SUMP", AcceptedSum.ToString("F2", Options.NumberFormat)); } // Сведения о санкциях // Описывает санкции, примененные в рамках данного случая. foreach (Sanction s in pool.LoadSanctions(irec, this)) { s.Write(xml, pool); } if (DeniedSum > 0) { xml.Writer.WriteElementString("SANKIT", DeniedSum.ToString("F2", Options.NumberFormat)); } xml.Writer.WriteEndElement(); }