コード例 #1
0
        /// <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();
        }