Проект

Общее

Профиль

Serviceosp » packet_v2.xsd

Схема пакета, версия 2 - Алексей Куковякин, 24.10.2018 18:26

 
1
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2

    
3
	<xs:element name="Packet">
4
		<xs:annotation>
5
			<xs:documentation>Пакет запросов или ответов</xs:documentation>
6
			<xs:documentation>Версия 2.</xs:documentation>
7
			<xs:documentation>Отличия от версии 1:</xs:documentation>
8
			<xs:documentation>Исправлено несоответствие текстового описания и ограничений СНИЛС.</xs:documentation>
9
			<xs:documentation></xs:documentation>
10
		</xs:annotation>
11
		<xs:complexType>
12
			<xs:sequence>
13

    
14
				<!-- Header -->
15
				<xs:element name="Header" type="typeHeader" maxOccurs="1" />
16

    
17
				<!-- Result. Включается в ответный пакет -->
18
				<xs:element name="Result" type="xs:string" minOccurs="0" />
19

    
20
				<!-- Msgs -->
21
				<xs:element name="Msgs">
22
					<xs:annotation>
23
						<xs:documentation>Список сообщений</xs:documentation>
24
					</xs:annotation>
25
					<xs:complexType>
26
						<xs:sequence>
27
							<xs:element name="Msg" type="typeMsg" minOccurs="0" maxOccurs="unbounded" />
28
						</xs:sequence>
29
					</xs:complexType>
30
				</xs:element>
31

    
32
				<!-- Error. Включается в ответный пакет в случае возникновения ошибки обработки запроса -->
33
				<xs:element name="Error" type="xs:anyType" minOccurs="0" />
34

    
35
			</xs:sequence>
36
		</xs:complexType>
37
	</xs:element>
38

    
39
	<!-- ****************************************** -->
40
	<!-- typeHeader -->
41
	<!-- ****************************************** -->
42
	<xs:complexType name="typeHeader">
43
		<xs:annotation>
44
			<xs:documentation>Заголовок пакета</xs:documentation>
45
		</xs:annotation>
46
		<xs:sequence>
47

    
48
			<xs:element name="PackType" minOccurs="1" >
49
				<xs:annotation>
50
					<xs:documentation>
51
						PackType - тип пакета, задаёт тип запроса:
52
						"seek" - простой поиск всех совпадений в РС ЕРЗ, выдаёт все найденные страховки;
53
						"ident" - идентификация в РС ЕРЗ, выдаёт только последнюю страховку идентифицированного ЗЛ, начавшуюся до заданной даты запроса, в том числе закрытые
54
						"full" - идентификация в РС ЕРЗ, выдаёт все страховки идентифицированного ЗЛ;
55
						"prik" - идентификация в РС ЕРЗ и определение СП и прикрепления на заданную дату по правилам ТС
56
					</xs:documentation>
57
				</xs:annotation>
58
				<xs:simpleType>
59
					<xs:restriction base="xs:string">
60
						<xs:maxLength value="16"/>
61
						<xs:enumeration value="seek"/>
62
						<xs:enumeration value="ident"/>
63
						<xs:enumeration value="full"/>
64
						<xs:enumeration value="prik"/>
65
					</xs:restriction>
66
				</xs:simpleType>
67
			</xs:element>
68

    
69
			<xs:element name="AppID" minOccurs="1" >
70
				<xs:simpleType>
71
					<xs:annotation>
72
						<xs:documentation>
73
							Идентификатор приложения клиента. Возвращается в ответном пакете.
74
						</xs:documentation>
75
					</xs:annotation>
76
					<xs:restriction base="xs:string">
77
						<xs:maxLength value="64"/>
78
					</xs:restriction>
79
				</xs:simpleType>
80
			</xs:element>
81

    
82
			<!-- Необязательные прикладные элементы. Возвращаются в ответном пакете -->
83
			<xs:element name="DocID" type="xs:unsignedInt" minOccurs="0" />
84

    
85
			<xs:element name="PackID" minOccurs="0" >
86
				<xs:simpleType>
87
					<xs:restriction base="xs:string">
88
						<xs:maxLength value="64"/>
89
					</xs:restriction>
90
				</xs:simpleType>
91
			</xs:element>
92

    
93
			<xs:element name="tag" type="xs:anyType" minOccurs="0" >
94
				<xs:annotation>
95
					<xs:documentation>
96
						Произвольные данные клиента. Любого типа. Допускаются вложенные XML элементы. Возвращается в ответном пакете.
97
					</xs:documentation>
98
				</xs:annotation>
99
			</xs:element>
100
		</xs:sequence>
101
	</xs:complexType>
102

    
103

    
104
	<!-- ****************************************** -->
105
	<!-- typeMsg -->
106
	<!-- ****************************************** -->
107

    
108
	<xs:complexType name="typeMsg">
109
		<xs:annotation>
110
			<xs:documentation>Сообщение. Содержит поля элемента сообщения, секцию запроса, а также секции ответа в ответном пакете</xs:documentation>
111
		</xs:annotation>
112
		<xs:sequence>
113

    
114
			<!-- прикладной идентификатор элемента -->
115
			<xs:element name="ItemID" type="xs:unsignedInt" minOccurs="0" />
116
			
117
			<!-- запрос на дату -->
118
			<xs:element name="ReqDate" type="xs:date"  minOccurs="0">
119
				<xs:annotation>
120
					<xs:documentation>Дата определения СП при запросе типа "prik". Для остальных типов запросов не учитывается</xs:documentation>
121
				</xs:annotation>
122
			</xs:element>
123

    
124
			<!-- Request -->
125
			<xs:element name="Request" type="typeRequest" minOccurs="1" maxOccurs="1" >
126
				<xs:annotation>
127
					<xs:documentation>Данные запроса</xs:documentation>
128
				</xs:annotation>
129
			</xs:element>
130

    
131
			<!-- Reply -->
132
			<xs:element name="Reply" type="typeReply" minOccurs="0" maxOccurs="unbounded" >
133
				<xs:annotation>
134
					<xs:documentation>Данные ответа на запрос. Включаются в ответный пакет. Может быть насколько на один запрос.</xs:documentation>
135
				</xs:annotation>
136
			</xs:element>
137

    
138
		</xs:sequence>
139
	</xs:complexType>
140

    
141
	<!-- ****************************************** -->
142
	<!-- typeRequest -->
143
	<!-- ****************************************** -->
144

    
145
	<xs:complexType name="typeRequest">
146
		<xs:annotation>
147
			<xs:documentation>
148
				Содержит данные запроса.
149
				Состоит из нескольких атрибутов, по которым будет вестись поиск в РС ЕРЗ.
150
				Совпадения по атрибутам, имеющим высокую избирательность и защиту (контрольное число),
151
				таким как СНИЛС или ЕНП (в поле POLIS),	будут иметь больший уровень значимости,
152
				а совпадения по низкоизбирательным атрибутам, таким как ФИО, - меньший.
153
				Общий уровень (рейтинг) совпадения запроса вычисляется как сумма уровней всех совпадений.
154
				Совпадения с рейтингом ниже предельно установленного для указанного типа запроса, отбрасываются.
155
			</xs:documentation>
156
		</xs:annotation>
157
		<xs:sequence>
158
				
159
			<xs:element name="FAM" minOccurs="0" >
160
				<xs:annotation>
161
					<xs:documentation>Фамилия</xs:documentation>
162
				</xs:annotation>
163
				<xs:simpleType>
164
					<xs:restriction base="xs:string">
165
						<xs:maxLength value="50"/>
166
					</xs:restriction>
167
				</xs:simpleType>
168
			</xs:element>
169
			
170
			<xs:element name="IM" minOccurs="0" >
171
				<xs:annotation>
172
					<xs:documentation>Имя</xs:documentation>
173
				</xs:annotation>
174
				<xs:simpleType>
175
					<xs:restriction base="xs:string">
176
						<xs:maxLength value="50"/>
177
					</xs:restriction>
178
				</xs:simpleType>
179
			</xs:element>
180
			
181
			<xs:element name="OT" minOccurs="0" >
182
				<xs:annotation>
183
					<xs:documentation>Отчество</xs:documentation>
184
				</xs:annotation>
185
				<xs:simpleType>
186
					<xs:restriction base="xs:string">
187
						<xs:maxLength value="50"/>
188
					</xs:restriction>
189
				</xs:simpleType>
190
			</xs:element>
191
			
192
			<xs:element name="DR" type="xs:date"  minOccurs="0" >
193
				<xs:annotation>
194
					<xs:documentation>Дата рождения</xs:documentation>
195
				</xs:annotation>
196
			</xs:element>
197

    
198
			<xs:element name="POLIS" minOccurs="0" >
199
				<xs:annotation>
200
					<xs:documentation>Серия и номер полиса. Допустимы разделители: (пробел) и "№". При поиске разделители игнорируются.</xs:documentation>
201
				</xs:annotation>
202
				<xs:simpleType>
203
					<xs:restriction base="xs:string">
204
						<xs:maxLength value="32"/>
205
					</xs:restriction>
206
				</xs:simpleType>
207
			</xs:element>
208

    
209
			<xs:element name="DOCUMENT" minOccurs="0" >
210
				<xs:annotation>
211
					<xs:documentation>Серия и номер документа, удостоверяющего личность. Допустимы разделители: (пробел) и "№". При поиске разделители игнорируются. </xs:documentation>
212
				</xs:annotation>
213
				<xs:simpleType>
214
					<xs:restriction base="xs:string">
215
						<xs:maxLength value="40"/>
216
					</xs:restriction>
217
				</xs:simpleType>
218
			</xs:element>
219

    
220
			<xs:element name="SNILS" minOccurs="0" >
221
				<xs:annotation>
222
					<xs:documentation>Цифры СНИЛС. Разделители недопустимы.</xs:documentation>
223
				</xs:annotation>
224
				<xs:simpleType>
225
					<xs:restriction base="xs:string">
226
						<xs:maxLength value="11"/>
227
						<xs:pattern value="[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"/>
228
					</xs:restriction>
229
				</xs:simpleType>
230
			</xs:element>
231

    
232
			<xs:element name="MR" minOccurs="0" >
233
				<xs:annotation>
234
					<xs:documentation>Место рождения (точно, как в документе). Не более 255 символов</xs:documentation>
235
				</xs:annotation>
236
				<xs:simpleType>
237
					<xs:restriction base="xs:string">
238
						<xs:maxLength value="255"/>
239
					</xs:restriction>
240
				</xs:simpleType>
241
			</xs:element>
242

    
243
		</xs:sequence>
244
	</xs:complexType>
245

    
246

    
247
	<!-- ****************************************** -->
248
	<!-- typeReply -->
249
	<!-- ****************************************** -->
250

    
251
	<xs:complexType name="typeReply">
252
		<xs:annotation>
253
			<xs:documentation>Содержит данные ответов на запрос.
254
				 Поля персональных данных ЗЛ включаются в ответ только в случае 
255
						 достаточно высокого рейтинга совпадения запроса и записи страховки (более 6).
256
			</xs:documentation>
257
		</xs:annotation>
258
		<xs:sequence>
259

    
260
			<!-- данные ЗЛ -->
261

    
262
			<xs:element name="FAM" minOccurs="0" >
263
				<xs:annotation>
264
					<xs:documentation>Фамилия</xs:documentation>
265
				</xs:annotation>
266
				<xs:simpleType>
267
					<xs:restriction base="xs:string">
268
						<xs:maxLength value="50"/>
269
					</xs:restriction>
270
				</xs:simpleType>
271
			</xs:element>
272

    
273
			<xs:element name="IM" minOccurs="0" >
274
				<xs:annotation>
275
					<xs:documentation>Имя</xs:documentation>
276
				</xs:annotation>
277
				<xs:simpleType>
278
					<xs:restriction base="xs:string">
279
						<xs:maxLength value="50"/>
280
					</xs:restriction>
281
				</xs:simpleType>
282
			</xs:element>
283

    
284
			<xs:element name="OT" minOccurs="0" >
285
				<xs:annotation>
286
					<xs:documentation>Отчество</xs:documentation>
287
				</xs:annotation>
288
				<xs:simpleType>
289
					<xs:restriction base="xs:string">
290
						<xs:maxLength value="50"/>
291
					</xs:restriction>
292
				</xs:simpleType>
293
			</xs:element>
294

    
295
			<xs:element name="W" type="xs:unsignedByte"  minOccurs="0"  >
296
				<xs:annotation>
297
					<xs:documentation>Пол</xs:documentation>
298
				</xs:annotation>
299
			</xs:element>
300

    
301
			<xs:element name="DR" type="xs:date"  minOccurs="0" >
302
				<xs:annotation>
303
					<xs:documentation>Дата рождения</xs:documentation>
304
				</xs:annotation>
305
			</xs:element>
306

    
307
			<xs:element name="DOCTYPE" type="xs:unsignedInt"  minOccurs="0" >
308
				<xs:annotation>
309
					<xs:documentation>Тип документа, удостоверяющего личность</xs:documentation>
310
				</xs:annotation>
311
			</xs:element>
312

    
313
			<xs:element name="DOCSER" minOccurs="0" >
314
				<xs:annotation>
315
					<xs:documentation>Серия документа, удостоверяющего личность</xs:documentation>
316
				</xs:annotation>
317
				<xs:simpleType>
318
					<xs:restriction base="xs:string">
319
						<xs:maxLength value="16"/>
320
					</xs:restriction>
321
				</xs:simpleType>
322
			</xs:element>
323

    
324
			<xs:element name="DOCNUM" minOccurs="0" >
325
				<xs:annotation>
326
					<xs:documentation>Номер документа, удостоверяющего личность</xs:documentation>
327
				</xs:annotation>
328
				<xs:simpleType>
329
					<xs:restriction base="xs:string">
330
						<xs:maxLength value="20"/>
331
					</xs:restriction>
332
				</xs:simpleType>
333
			</xs:element>
334

    
335
			<xs:element name="SNILS" minOccurs="0" >
336
				<xs:annotation>
337
					<xs:documentation>СНИЛС, только цифры без разделителей</xs:documentation>
338
				</xs:annotation>
339
				<xs:simpleType>
340
					<xs:restriction base="xs:string">
341
						<xs:maxLength value="11"/>
342
						<xs:pattern value="[0-9]{11}"/>
343
					</xs:restriction>
344
				</xs:simpleType>
345
			</xs:element>
346

    
347
			<!-- данные страховки -->
348

    
349
			<xs:element name="PIN" type="xs:unsignedInt"  minOccurs="1" >
350
				<xs:annotation>
351
					<xs:documentation>Внутренний идентификатор ЗЛ</xs:documentation>
352
				</xs:annotation>
353
			</xs:element>
354

    
355
			<xs:element name="InID" type="xs:unsignedInt"  minOccurs="1" >
356
				<xs:annotation>
357
					<xs:documentation>Внутренний идентификатор записи страховки</xs:documentation>
358
				</xs:annotation>
359
			</xs:element>
360

    
361
			<xs:element name="ENP" minOccurs="1" >
362
				<xs:annotation>
363
					<xs:documentation>ЕНП - единый номер полиса ОМС</xs:documentation>
364
				</xs:annotation>
365
				<xs:simpleType>
366
					<xs:restriction base="xs:string">
367
						<xs:maxLength value="16"/>
368
						<xs:pattern value="[0-9]{16}"/>
369
					</xs:restriction>
370
				</xs:simpleType>
371
			</xs:element>
372

    
373
			<xs:element name="OGRNSMO" minOccurs="1" >
374
				<xs:annotation>
375
					<xs:documentation>ОГРН СМО</xs:documentation>
376
				</xs:annotation>
377
				<xs:simpleType>
378
					<xs:restriction base="xs:string">
379
						<xs:maxLength value="15"/>
380
					</xs:restriction>
381
				</xs:simpleType>
382
			</xs:element>
383

    
384
			<xs:element name="TER_ST" minOccurs="1" >
385
				<xs:annotation>
386
					<xs:documentation>Код территории страхования</xs:documentation>
387
				</xs:annotation>
388
				<xs:simpleType>
389
					<xs:restriction base="xs:string">
390
						<xs:maxLength value="5"/>
391
					</xs:restriction>
392
				</xs:simpleType>
393
			</xs:element>
394

    
395
			<xs:element name="T_POL" minOccurs="1" >
396
				<xs:annotation>
397
					<xs:documentation>Тип документа, подтверждающего факт страхования (полиса) в кодировке ЦС ЕРЗ</xs:documentation>
398
				</xs:annotation>
399
				<xs:simpleType>
400
					<xs:restriction base="xs:string">
401
						<xs:maxLength value="1"/>
402
						<xs:pattern value="В|К|П|С|Х|Э"/>
403
					</xs:restriction>
404
				</xs:simpleType>
405
			</xs:element>
406

    
407
			<xs:element name="SN_POL_ERP" minOccurs="1" >
408
				<xs:annotation>
409
					<xs:documentation>Серия и номер документа, подтверждающего факт страхования (полиса) в формате ЦС ЕРЗ</xs:documentation>
410
				</xs:annotation>
411
				<xs:simpleType>
412
					<xs:restriction base="xs:string">
413
						<xs:maxLength value="32"/>
414
					</xs:restriction>
415
				</xs:simpleType>
416
			</xs:element>
417

    
418
			<xs:element name="DBEG" type="xs:date"  minOccurs="1" >
419
				<xs:annotation>
420
					<xs:documentation>Дата начала действия страховки</xs:documentation>
421
				</xs:annotation>
422
			</xs:element>
423

    
424
			<xs:element name="DSTOP" type="xs:date"  minOccurs="0" >
425
				<xs:annotation>
426
					<xs:documentation>Дата фактического окончания действия страховки</xs:documentation>
427
				</xs:annotation>
428
			</xs:element>
429

    
430
			<!-- данные прикрепления в ответах на запросы типа "prik" -->
431

    
432
			<xs:element name="RpnID" type="xs:unsignedInt"  minOccurs="0" >
433
				<xs:annotation>
434
					<xs:documentation>Внутренний идентификатор записи прикрепления</xs:documentation>
435
				</xs:annotation>
436
			</xs:element>
437

    
438
			<xs:element name="CODE_MO" minOccurs="0" >
439
				<xs:annotation>
440
					<xs:documentation>Региональный код медорганизации</xs:documentation>
441
				</xs:annotation>
442
				<xs:simpleType>
443
					<xs:restriction base="xs:string">
444
						<xs:maxLength value="6"/>
445
					</xs:restriction>
446
				</xs:simpleType>
447
			</xs:element>
448

    
449
			<xs:element name="TDMR" type="xs:unsignedInt"  minOccurs="0" >
450
				<xs:annotation>
451
					<xs:documentation>Тип должности медработника</xs:documentation>
452
				</xs:annotation>
453
			</xs:element>
454

    
455
			<xs:element name="IDDOKT" minOccurs="0" >
456
				<xs:annotation>
457
					<xs:documentation>Код врача (СНИЛС с разделителями "-")</xs:documentation>
458
				</xs:annotation>
459
				<xs:simpleType>
460
					<xs:restriction base="xs:string">
461
						<xs:maxLength value="14"/>
462
					</xs:restriction>
463
				</xs:simpleType>
464
			</xs:element>
465

    
466
			<xs:element name="DATE_REG" type="xs:date"  minOccurs="0" >
467
				<xs:annotation>
468
					<xs:documentation>Дата регистрации прикрепления к МО</xs:documentation>
469
				</xs:annotation>
470
			</xs:element>
471

    
472
			<xs:element name="CloseDate" type="xs:date"  minOccurs="0" >
473
				<xs:annotation>
474
					<xs:documentation>Дата прекращения действия записи прикрепления к МО</xs:documentation>
475
				</xs:annotation>
476
			</xs:element>
477

    
478
			<xs:element name="SMP_CODE" minOccurs="0" >
479
				<xs:annotation>
480
					<xs:documentation>Код медорганизации СМП, привязанной к МО</xs:documentation>
481
				</xs:annotation>
482
				<xs:simpleType>
483
					<xs:restriction base="xs:string">
484
						<xs:maxLength value="6"/>
485
					</xs:restriction>
486
				</xs:simpleType>
487
			</xs:element>
488

    
489
			<!-- служебные данные поиска -->
490
			<xs:element name="ident_level" type="xs:unsignedInt"  minOccurs="0" >
491
				<xs:annotation>
492
					<xs:documentation>Уровень (рейтинг) совпадения</xs:documentation>
493
				</xs:annotation>
494
			</xs:element>
495

    
496
			<xs:element name="ident_var"  minOccurs="0" >
497
				<xs:annotation>
498
					<xs:documentation>Поля совпадения</xs:documentation>
499
				</xs:annotation>
500
				<xs:simpleType>
501
					<xs:restriction base="xs:string">
502
						<xs:maxLength value="64"/>
503
					</xs:restriction>
504
				</xs:simpleType>
505
			</xs:element>
506

    
507
			<xs:element name="ident_count" type="xs:unsignedInt"  minOccurs="0" >
508
				<xs:annotation>
509
					<xs:documentation>Количество совпадений с другими ЗЛ</xs:documentation>
510
				</xs:annotation>
511
			</xs:element>
512

    
513
		</xs:sequence>
514
	</xs:complexType>
515
</xs:schema>
(2-2/3)