Qué dicen los 8 dígitos del número de asegurador — el número de clasificación legal, el número de prefectura y el número de verificación leídos desde la implementación del sistema de facturación médica
· Actualizado el: · Go Komura · TI médica, ORCA, Número de asegurador, Sistema de facturación médica, Recibo de facturación, Administración médica
El número de asegurador impreso en la tarjeta de seguro (hoy, en la pantalla de información de elegibilidad de la tarjeta MyNumber de seguro médico). Es un número de 8 dígitos (a veces 6) que aparece siempre en la facturación de recibos, pero probablemente son pocos los ingenieros que saben que «en realidad, este número se puede leer». Los 2 primeros dígitos indican el régimen al que se pertenece, los 2 siguientes indican la prefectura del asegurador y, con el último dígito, incluso se puede verificar el número mediante un cálculo: en definitiva, el número de asegurador no es un simple correlativo, sino un código con estructura.
La cuarta entrega de la serie ORCA diseca, como episodio especial y antes de la prometida entrega sobre la verificación de recibos, este número de asegurador por sí solo. Se tratan los siguientes cuatro puntos:
- La composición del número de asegurador — número de clasificación legal, número de prefectura, número propio del asegurador y número de verificación
- El cálculo manual del número de verificación (dígito de control) y su implementación en COBOL en ORCA
- La excepción histórica por la que solo el antiguo Seguro de Salud Administrado por el Gobierno (hoy Kyokai Kenpo) tenía «4 dígitos»
- Que el rastro de esa excepción sigue vivo hoy en el código fuente de ORCA publicado en 2026
La descripción del lado institucional toma como fuente primaria las «Directrices de configuración del número de asegurador, el número de responsable de gastos públicos, el número de beneficiario de la asistencia médica con cargo a fondos públicos, y el código de centro médico y el código de farmacia» del Ministerio de Salud, Trabajo y Bienestar (en adelante, las «Directrices de configuración»); la descripción del lado de la implementación se basa, igual que hasta la entrega anterior, en la lectura real del código fuente oficial de la serie 5.2 del núcleo de Nichirese (instantánea publicada en julio de 2026).
Público al que se dirige este artículo y los 4 términos que se usan en él
Está pensado para ingenieros que crean o integran sistemas destinados a centros médicos (sistemas de facturación médica, historias clínicas electrónicas, aplicaciones de negocio de recepción y facturación) y para el personal de sistemas de información encargado de incorporar datos médicos. No se da por sentado ningún conocimiento práctico de la facturación de recibos. Basta con tener claros los siguientes 4 términos para poder leerlo, y el artículo funciona de forma independiente aunque no se hayan leído las tres entregas anteriores de la serie.
| Término | Significado |
|---|---|
| Recibo de facturación (レセプト) | Informe detallado de honorarios médicos. Es el detalle que el centro médico elabora reuniendo la atención de un mes, con el que reclama el importe al asegurador a través de los organismos evaluadores y pagadores (el Fondo de Pago de Honorarios Médicos del Seguro Social y Kokuhoren, la Federación de Asociaciones Nacionales de Seguro de Salud) |
| Sistema de facturación médica (レセコン) | Computadora de facturación de recibos. Es el sistema de negocio encargado de elaborar y presentar los recibos, un software distinto de la historia clínica electrónica, donde se registra la atención |
| Nichirese (日レセ) | Abreviatura del «Software Estándar de Facturación Médica de la Asociación Médica Japonesa», que ofrece la Asociación Médica Japonesa. Es el sistema de facturación médica que constituye el núcleo del proyecto ORCA, y el código fuente que se lee en este artículo es el suyo |
| Asegurador | La entidad que administra el seguro médico público: Kyokai Kenpo, las cajas de seguro de salud, los municipios (Seguro Nacional de Salud), las uniones de área amplia del sistema de atención médica para personas de edad avanzada, etc. Es la unidad que identifica el número de asegurador, protagonista de este artículo |
La relación entre el sistema de facturación médica y la historia clínica electrónica, así como el panorama general de ORCA, se tratan en la primera entrega de la serie.
Índice
- Primero, la conclusión — el número de asegurador se compone de «régimen + región + correlativo + verificación»
- Número de clasificación legal — con los 2 primeros dígitos se sabe el régimen
- Número de prefectura y número propio del asegurador — hasta dónde se sabe el asegurador
- Número de verificación — cálculo manual del módulo 10 con ponderación 2-1
- La excepción — el número de asegurador del antiguo Seguro de Salud Administrado por el Gobierno era de «4 dígitos»
- Lo que «no se sabe» a partir del número de asegurador
- Cómo lo implementa ORCA — dos tablas maestras y la bifurcación por número de dígitos
- Puntos prácticos para quien construye sistemas que manejan el número
- Resumen
- Referencias
1. Primero, la conclusión — el número de asegurador se compone de «régimen + región + correlativo + verificación»
El punto 1 de las Directrices de configuración define así el número de asegurador.
| Posición | Dígitos | Nombre | Significado |
|---|---|---|---|
| Dígitos 1.º-2.º | 2 | Número de clasificación legal | Clasificación del régimen de seguro médico (Kyokai Kenpo, caja de seguro de salud, sistema de atención médica para personas de edad avanzada…) |
| Dígitos 3.º-4.º | 2 | Número de prefectura | Prefectura donde se ubica el asegurador |
| Dígitos 5.º-7.º | 3 | Número propio del asegurador | Número de cada asegurador dentro del régimen y la prefectura |
| Dígito 8.º | 1 | Número de verificación | Dígito de control (módulo 10 con ponderación 2-1) |
No obstante, el propio texto principal recoge una excepción: solo el Seguro Nacional de Salud (excluida la asistencia médica de jubilados) carece de número de clasificación legal, y su número tiene un total de 6 dígitos: 2 de prefectura + 3 de número propio del asegurador + 1 de verificación. Si el número de asegurador de la tarjeta de seguro tiene 6 dígitos, con eso solo ya se sabe que se trata del «Seguro Nacional de Salud municipal o de una unión de Seguro Nacional de Salud».
Usando tal cual el ejemplo que aparece en las Directrices de configuración, el número de asegurador 06130488 se lee así:
06 13 048 8
│ │ │ └ Número de verificación (lo verificaremos en el capítulo 4)
│ │ └ Número propio del asegurador: n.º 048 dentro de las cajas de Tokio
│ └ Número de prefectura: 13 = Tokio
└ Número de clasificación legal: 06 = Seguro de salud administrado por caja
Hasta el punto de «una de las cajas de seguro de salud que hay en la prefectura de Tokio» se puede saber solo con el número, sin necesidad de consultar ninguna tabla maestra. En los capítulos siguientes examinaremos cada componente por orden.
2. Número de clasificación legal — con los 2 primeros dígitos se sabe el régimen
El número de clasificación legal está definido en el Anexo 1 (1), «Tabla de números de clasificación legal y abreviaturas de los regímenes», de las Directrices de configuración. A continuación se extraen los principales regímenes de seguro médico.
| N.º de clasificación legal | Régimen | Abreviatura |
|---|---|---|
| 01 | Kyokai Kenpo (seguro de salud administrado por la Asociación de Seguro de Salud de Japón; antiguo Seikan Kenpo) | (協) |
| 02 | Seguro de marinos | (船) |
| 03 / 04 | Seguro de asegurados eventuales diarios (atención general / gastos de atención especial) | (日) |
| 06 | Seguro de salud administrado por caja | (組) |
| 07 | Prestación de asistencia médica para miembros de las Fuerzas de Autodefensa, entre otros | (自) |
| 31-34 | Kyosai, caja de mutualidad (funcionarios nacionales / funcionarios locales, etc. / policía / promoción de escuelas públicas y privadas) | (共) |
| 39 | Sistema de atención médica para personas de edad avanzada | (高) |
| 63, 72-75 | Jubilados de excepción (cajas de seguro de salud específicas / cajas de mutualidad específicas) | (退) |
| 67 | Asistencia médica de jubilados conforme a la Ley del Seguro Nacional de Salud | — |
| (ninguno, 6 dígitos) | Seguro Nacional de Salud (excluida la asistencia médica de jubilados) | — |
Hay tres puntos prácticos a tener en cuenta al leer esta tabla.
- Se distingue el destino de presentación del recibo. Los recibos del seguro de los trabajadores (01-34, 63, 72-75) se presentan al Fondo de Pago de Honorarios Médicos del Seguro Social; los del Seguro Nacional de Salud (6 dígitos y clasificación legal 67) y del sistema de atención médica para personas de edad avanzada (39) se presentan a Kokuhoren. La distinción entre «shaho» (seguro de los trabajadores) y «kokuho» (Seguro Nacional de Salud) que se usa en el mundo de la facturación de recibos se puede determinar mecánicamente con solo mirar el principio del número de asegurador.
- Hay números de 8 dígitos aunque pertenezcan al sistema del Seguro Nacional de Salud. La asistencia médica de jubilados del Seguro Nacional de Salud (67) tiene, de forma excepcional, 8 dígitos con número de clasificación legal, aunque forme parte del régimen del Seguro Nacional de Salud. Si se implementa de forma simplificada como «6 dígitos = Seguro Nacional de Salud, 8 dígitos = seguro de los trabajadores», aquí se produce el fallo.
- Un asegurador no equivale a un solo número. Como indica la nota del Anexo 1, 63 y 72-75 son números de clasificación legal para los asegurados jubilados de excepción. Una misma caja de seguro de salud puede tener varios números de asegurador: el número 06 para los asegurados generales y el número 63 para los asegurados jubilados de excepción.
Cabe señalar que existe un número de 8 dígitos muy parecido, el número de responsable de gastos públicos (12 para la asistencia social, 21 para la atención médica psiquiátrica ambulatoria, etc.). Su composición, «2 dígitos de clasificación legal + 2 de prefectura + 3 de organismo ejecutor + 1 de verificación», es prácticamente idéntica, pero se trata de un sistema distinto del número de asegurador del seguro médico. En el recibo de facturación también se reserva una columna aparte para consignarlo. Volveremos sobre este punto de confusión en el capítulo 6.
3. Número de prefectura y número propio del asegurador — hasta dónde se sabe el asegurador
El número de prefectura, en los dígitos 3.º y 4.º, está definido en el Anexo 2 de las Directrices de configuración, del 01 (Hokkaido) al 47 (Okinawa). El orden coincide con el del código de prefecturas (JIS) de uso general: Tokio es 13 y Osaka, 27. El criterio es la ubicación del asegurador, así que, incluso en una empresa con traslados a escala nacional, si la caja de seguro de salud tiene su sede en Tokio, el número será 13.
El número propio del asegurador, en los dígitos 5.º a 7.º, es el número asignado a cada asegurador dentro de ese régimen y esa prefectura. La circular también especifica quién determina el número: según la normativa vigente, el Departamento de Seguros del Ministerio de Salud, Trabajo y Bienestar lo fija para Kyokai Kenpo por cada sucursal prefectural; las oficinas regionales (o sus delegaciones) de Bienestar lo fijan para cada caja de seguro de salud; la prefectura lo fija para cada municipio o unión de Seguro Nacional de Salud; la unión de área amplia del sistema de atención médica para personas de edad avanzada lo fija para ese sistema; y el organismo supervisor correspondiente lo fija para cada caja de mutualidad (en el momento de su establecimiento original, en 1976 —Showa 51—, quienes fijaban el número eran el director general de la Agencia de Seguro Social o los gobernadores de las prefecturas, pero con la reorganización administrativa esas competencias han pasado a los organismos actuales).
Es decir, el número de asegurador es un código que no se asigna de forma centralizada a nivel nacional, sino de manera distribuida dentro del marco «régimen × prefectura». Extraer solo la parte del correlativo no tiene sentido: únicamente al combinarlo con el número de clasificación legal y el número de prefectura se identifica de forma unívoca al asegurador. Esto también concuerda con el diseño de la tabla maestra de ORCA que veremos más adelante (que la clave de la tabla maestra de aseguradores sea el propio número de asegurador).
Por cierto, Kyokai Kenpo es, como persona jurídica, una única entidad, la Asociación de Seguro de Salud de Japón, pero el número de asegurador se asigna por cada sucursal prefectural (circular n.º 0918001 del Departamento de Seguros, del 18 de septiembre de 2008). Es un buen ejemplo de que «la unidad que identifica el número de asegurador» y «el asegurador como persona jurídica» no siempre coinciden.
4. Número de verificación — cálculo manual del módulo 10 con ponderación 2-1
El método de cálculo del número de verificación, el último dígito, también está descrito como un procedimiento en las Directrices de configuración.
- A cada dígito, excepto el de verificación, se le multiplica sucesivamente por 2 y por 1, empezando por el último dígito
- Se calcula la suma de los productos; ahora bien, si un producto tiene 2 dígitos, se toma la suma de la primera y la segunda cifra
- El número de verificación es la diferencia entre 10 y «el último dígito de la suma del punto 2»; ahora bien, si ese último dígito es 0, el número de verificación también es 0
Es el llamado módulo 10 con ponderación 2-1 (M10W21). Vamos a verificarlo con el 06130488 del capítulo 1. El objeto del cálculo son los 7 dígitos sin el número de verificación, 0613048, y las ponderaciones se asignan como 2, 1, 2, 1… empezando por el 8 del extremo derecho.
| Elemento | Dígito 1 | Dígito 2 | Dígito 3 | Dígito 4 | Dígito 5 | Dígito 6 | Dígito 7 |
|---|---|---|---|---|---|---|---|
| Cifra | 0 | 6 | 1 | 3 | 0 | 4 | 8 |
| Ponderación (desde la derecha) | 2 | 1 | 2 | 1 | 2 | 1 | 2 |
| Producto | 0 | 6 | 2 | 3 | 0 | 4 | 16 |
| Valor sumado al total | 0 | 6 | 2 | 3 | 0 | 4 | 7 ← 1+6 |
La suma es 0+6+2+3+0+4+7 = 22. Como el último dígito es 2, el número de verificación es 10 - 2 = 8, que coincide con el 8 final de 06130488 (solo cuando el último dígito es 0, el número de verificación también es 0).
Por cierto, este cálculo es, en esencia, el mismo que el algoritmo de Luhn, usado para el dígito de control de los números de tarjeta de crédito, entre otros. Luhn se suele explicar como «duplicar uno de cada dos dígitos desde el extremo derecho y, si el resultado duplicado supera 9, restarle 9; el último dígito se determina de modo que la suma total sea múltiplo de 10», pero como el producto es como máximo 18, «restar 9» da el mismo resultado que «separar el producto de 2 dígitos y sumarlos por separado». Aunque no le resulte familiar el nombre M10W21, si alguna vez ha escrito código para Luhn, reconocerá que es el mismo algoritmo.
Expresado en código, son solo unas líneas.
def check_digit(code: str) -> int:
"""Calcula el dígito de control a partir de los dígitos del número de asegurador sin el número de verificación"""
total = 0
for i, ch in enumerate(reversed(code)):
n = int(ch) * (2 if i % 2 == 0 else 1)
total += n // 10 + n % 10
return (10 - total % 10) % 10
assert check_digit("0613048") == 8
Como las aplicaciones de negocio del sector médico suelen estar escritas en C# o COBOL, dejamos también una versión en C# (con una sintaxis que funciona tal cual tanto en .NET Framework 4.x como en .NET 8).
// Calcula el dígito de control a partir de la cadena de dígitos sin el número de verificación
public static int CheckDigit(string code)
{
int total = 0;
for (int i = 0; i < code.Length; i++)
{
// Se multiplica por la ponderación 2,1,2,1… empezando por el extremo derecho
int digit = code[code.Length - 1 - i] - '0';
if (digit < 0 || digit > 9)
{
throw new ArgumentException("Contiene caracteres que no son dígitos", nameof(code));
}
int n = digit * ((i % 2 == 0) ? 2 : 1);
total += n / 10 + n % 10; // Si el producto tiene 2 dígitos, se separan y se suman por separado
}
return (10 - total % 10) % 10;
}
// Verifica el último dígito del número de asegurador (6 dígitos del Seguro Nacional de Salud u 8 dígitos).
// El número de 4 dígitos del antiguo Seikan no tiene número de verificación, por lo que queda fuera de esta función (capítulo 5)
public static bool IsValidInsurerNumber(string number)
{
if (string.IsNullOrEmpty(number)) { return false; }
if (number.Length != 6 && number.Length != 8) { return false; }
// Se revisan primero todos los dígitos. Si solo se comprobara el último dígito, una entrada
// con caracteres que no son dígitos en algún dígito intermedio llegaría hasta CheckDigit
// y devolvería una ArgumentException en lugar de false. Como esta ruta recibe entradas de
// OCR, código de barras o tecleo manual, debe devolver siempre un bool
foreach (char c in number)
{
if (c < '0' || c > '9') { return false; }
}
int check = number[number.Length - 1] - '0';
return CheckDigit(number.Substring(0, number.Length - 1)) == check;
}
// CheckDigit("0613048") == 8 / IsValidInsurerNumber("06130488") == true
Aquí hay una trampa de implementación. La ponderación «2,1,2,1…» está definida empezando por el extremo derecho. En realidad, si nos limitamos al número de asegurador, la cadena de dígitos a verificar tiene 7 dígitos (número de 8 dígitos) o 5 dígitos (Seguro Nacional de Salud de 6 dígitos), es decir, una longitud impar, así que multiplicar por 2,1,2,1… desde el extremo izquierdo da la misma asignación (porque, con una longitud impar, la secuencia de ponderaciones queda simétrica). Lo peligroso es el momento en que se reutiliza esta rutina para un número de longitud par. Por ejemplo, el número de beneficiario de la asistencia médica con cargo a fondos públicos tiene 6 dígitos de clasificación del beneficiario + 1 dígito de verificación, con 6 dígitos a verificar, una longitud par. Una implementación escrita con el punto de partida en el extremo izquierdo desplaza en un dígito toda la ponderación en este caso y devuelve un valor distinto. Tiene la mala propiedad de que, si solo se prueba con números de asegurador, resulta imposible detectarlo.
Curiosamente, en el código fuente de ORCA queda justo el rastro de esta trampa. El subprograma común cobol/common/ORCSCHKDGT.CBL (nombre del componente: «Cálculo del dígito de control (verificación)»), que se encarga por sí solo del cálculo y la verificación del dígito de control, es una rutina de propósito general que acepta números de hasta 20 dígitos, no solo el número de asegurador. Su historial de modificaciones dice lo siguiente.
* Historial de modificaciones del programa
* Maj/Min/Rev Autor Fecha Contenido
* 01.00.01 MCC-Ota 01/04/17 El método de la fórmula aritmética pasa a calcularse desde la derecha
Cuatro meses después de su creación original en diciembre de 2000, en abril de 2001 se aplicó la corrección «el método de la fórmula aritmética pasa a calcularse desde la derecha»: al leer el código antiguo que queda comentado, se ve que la versión inicial multiplicaba las ponderaciones en orden desde el extremo izquierdo. Como se explicó antes, con un número de asegurador de longitud impar el resultado coincide incluso partiendo del extremo izquierdo, así que este error solo salió a la luz al verificar un número de longitud par. El código corregido toma el índice del extremo derecho de la cadena de dígitos en IDY, va decrementando IDY mientras multiplica las ponderaciones desde la derecha, separa el producto en WRK-CD2-1 + WRK-CD2-2 cuando tiene 2 dígitos y los suma, y por último devuelve 10 - (suma mod 10): es una implementación que sigue tal cual el procedimiento de las Directrices de configuración. Una sola línea del historial de modificaciones de hace 25 años sigue siendo útil hoy como aviso: «escriba el dígito de control empezando por el extremo derecho; no se confíe solo con pruebas de números de longitud impar».
5. La excepción — el número de asegurador del antiguo Seguro de Salud Administrado por el Gobierno era de «4 dígitos»
Hasta aquí, el principio general. Y el número de asegurador tuvo, en su historia, la mayor de las excepciones. El punto 7 del apartado 1 de las Directrices de configuración dice lo siguiente.
Excepción relativa al número de asegurador del Seguro de Salud Administrado por el Gobierno (excluido el seguro de los asegurados eventuales diarios) Para el número de asegurador del Seguro de Salud Administrado por el Gobierno (…), por el momento, y sin perjuicio de lo dispuesto en los puntos 1 y 3 anteriores, se usará como número de asegurador un número de 4 dígitos que combine 2 dígitos de número de prefectura y 2 dígitos de número propio del asegurador (municipio); en este caso, el número de prefectura será el que se establece en el Anexo 3 para cada prefectura donde se ubique la oficina de seguro social.
El Seguro de Salud Administrado por el Gobierno (Seikan Kenpo), predecesor de Kyokai Kenpo, era el régimen al que se afiliaban los empleados de pequeñas y medianas empresas, uno de los mayores del país por número de afiliados. El número de asegurador de ese régimen, el más grande de todos, era:
- de 4 dígitos, no 8 (sin número de clasificación legal y, además, sin número de verificación)
- con el número de prefectura tomado no del Anexo 2 habitual, sino de un Anexo 3 exclusivo
- y, aunque el asegurador era el Estado (uno solo), el número se asignaba por cada oficina de seguro social
una triple excepción. Los números del Anexo 3 no se parecen en nada a los de la tabla habitual.
| Prefectura | Número de prefectura habitual (Anexo 2) | Exclusivo del Seikan (Anexo 3) |
|---|---|---|
| Tokio | 13 | 21 |
| Kanagawa | 14 | 31 |
| Aichi | 23 | 51 |
| Osaka | 27 | 41 |
| Fukuoka | 40 | 75 |
| Okinawa | 47 | 82 |
Esta excepción, aún «por el momento», se mantuvo durante décadas y no se resolvió hasta la creación de la Asociación de Seguro de Salud de Japón (Kyokai Kenpo) el 1 de octubre de 2008. En las directrices actuales (la versión vigente de la circular de 1976, Showa 51), el número de asegurador de Kyokai Kenpo se define como un número de 8 dígitos fijado por cada sucursal prefectural (la circular n.º 0918001 citada antes). El número de clasificación legal sigue siendo el mismo que en la época del Seikan: 01.
El rastro de «Seikan» que queda en el código fuente de ORCA
Desde el punto de vista institucional, el asunto terminó en 2008, pero el sistema de facturación médica sigue manejando datos antiguos. En el código fuente de ORCA de la serie 5.2 publicado en 2026 aún queda vigente el rastro de la época de los 4 dígitos del Seikan.
El primero: una bifurcación que estima el régimen por el número de dígitos. El subprograma de verificación de entrada del seguro en el registro de pacientes, cobol/orca12/ORCSP03A.CBL, limita el número de dígitos del número de asegurador introducido a 4, 6 u 8 (cualquier otro valor es un error) y, para los números no registrados en la tabla maestra de aseguradores, estima el régimen (el «número de seguro» interno de ORCA) a partir del número de dígitos.
* Se edita según la ley
EVALUATE WRK-MOJ-MAX
WHEN 4
* Gobierno (Seikan)
MOVE "001" TO WRK-HKNJA-HKNNUM
WHEN 6
* Seguro Nacional de Salud
MOVE "060" TO WRK-HKNJA-HKNNUM
WHEN 8
* Otros
PERFORM 1003-HKNNUM-HBTNUM-SEC
END-EVALUATE
Si son 4 dígitos, Seikan (código interno 001); si son 6, Seguro Nacional de Salud (060); si son 8, se consulta la tabla maestra con el número de clasificación legal de los 2 primeros dígitos. El conocimiento del sistema de numeración visto en los capítulos 1 a 3 se convierte, tal cual, en una bifurcación de COBOL. Y como el número de 4 dígitos del Seikan no tiene número de verificación, la comprobación de módulo 10 justo anterior solo se ejecuta «cuando el número de dígitos es mayor que 4». La excepción llega incluso a la lógica de verificación.
El segundo: la reinterpretación entre Seikan y Kyokai. También hay tratamiento en el lado de la migración e incorporación de datos. En el lote de incorporación de información del seguro de pacientes cobol/orcabt/ORCVTPTHKNINF.CBL aparece lo siguiente:
* Compatibilidad con Kyokai Kenpo
IF PTHKN-HKNNUM = "001"
* Si es Seikan y el número de asegurador tiene 8 dígitos, se trata como Kyokai
IF WRK-LEN = 8
MOVE "009" TO PTHKN-HKNNUM
END-IF
END-IF
es decir, un proceso que «reinterpreta como Kyokai Kenpo (009) los datos que llegaron como Seikan (001) si el número de asegurador tiene 8 dígitos». Internamente, el antiguo Seikan y el actual Kyokai Kenpo coexisten como números de seguro distintos, y el número de dígitos sirve de pista para distinguir lo antiguo de lo nuevo. En el lado de la agregación de recibos, cobol/orcabt/ORCBG014.CBL agrupa 001 y 009 en la misma clasificación, con un comentario que dice «Seikan pasa a ser Kyokai».
El tercero: la reescritura del nombre mostrado. El colmo es la rutina común de edición del nombre del seguro, cobol/common/ORCSHKNMEI.CBL.
01 CONST-H201001 PIC X(08) VALUE "20081001".
...
IF ( ORCSHKNMEI-SRYYMD >= CONST-H201001 )
AND ( COMB-HKNNUM = "001" )
INSPECT COMB-SYU-TANSEIDONAME
REPLACING ALL "政管" BY "協会"
END-IF
La fecha de creación de Kyokai Kenpo, 20081001, está incrustada como constante y, si la fecha de la atención es igual o posterior a esa fecha, se reemplaza, dentro del nombre corto del régimen, la cadena «政管» por «協会». El nombre en la tabla maestra permanece como el antiguo; solo se cambia la visualización según la fecha de la atención: si la atención es anterior al 30 de septiembre de 2008, el sistema sigue mostrando «政管» hoy en día. La historia del régimen se reproduce en tiempo de ejecución con una sola sentencia de sustitución de cadenas.
6. Lo que «no se sabe» a partir del número de asegurador
Hasta ahora hemos seguido «hasta dónde se puede saber», así que también conviene trazar el límite. Esto es lo que no se puede saber a partir del número de asegurador.
- No se puede identificar a una persona. El número de asegurador señala, como mucho, al asegurador (o a su unidad). La identificación de la persona corre a cargo del símbolo y el número de la tarjeta de asegurado (y del número de rama de 2 dígitos añadido con la individualización de la confirmación de elegibilidad en línea). En la confirmación de elegibilidad en línea que vimos la entrega anterior, la condición de la consulta también era el conjunto número de asegurador + símbolo y número + número de rama.
- No determina el porcentaje de copago. El número de clasificación legal indica el régimen, pero el copago en ventanilla varía según la edad y la categoría de ingresos. Un atajo como «como es 39, es el 10 %» es peligroso: el porcentaje de copago se determina con el resultado de la confirmación de elegibilidad (la tarjeta de beneficiario de edad avanzada, la información de certificación del límite, etc.).
- No aparece el nombre ni el contacto del asegurador. Aunque a partir del número se pueda saber que es «el número 048 de una caja de seguro de salud de Tokio», solo se sabe de qué caja se trata al cotejarlo con la tabla maestra de aseguradores. El sistema de numeración solo ofrece una clave de búsqueda.
- Es un mundo aparte del número de responsable de gastos públicos. Los números de 8 dígitos como los de la asistencia social (clasificación legal 12) o la atención médica para la autonomía (21) son números de responsable de gastos públicos, y se asignan en una tabla distinta de la tabla de números de clasificación legal del número de asegurador. Como tiene la misma estructura de «8 dígitos: 2 de clasificación legal + 2 de prefectura + 3 + 1 de verificación», identificarlos solo por el formato provoca errores. En el recibo de facturación, el seguro y los gastos públicos también tienen columnas separadas.
7. Cómo lo implementa ORCA — dos tablas maestras y la bifurcación por número de dígitos
Vamos a organizar el diseño de datos de ORCA en torno al número de asegurador que hay detrás de la bifurcación vista en el capítulo 5. Aparecen, a grandes rasgos, dos tablas maestras.
La tabla maestra de números de seguro tbl_hknnum es la capa del «régimen». El régimen se identifica con el código interno de 3 dígitos «número de seguro» (001 = Seikan, 009 = Kyokai Kenpo, 060 = Seguro Nacional de Salud, 039 = personas de edad avanzada…). Sin embargo, la clave primaria real no es solo el número de seguro, sino una clave compuesta que incluye el número de centro médico, la fecha de inicio de aplicación y la clasificación (HOSPNUM, HKNNUM, TEKSTYMD, PAYKBN), una estructura que permite superponer registros del mismo régimen como generaciones de un período de aplicación: aunque un atributo como el porcentaje de copago cambie con una reforma del régimen, se puede localizar por el período. En la definición (record/tbl_hknnum.db), además del número de clasificación legal HBTNUM y el nombre del régimen SEIDONAME / nombre corto TANSEIDONAME, aparecen campos de porcentaje de copago y límite máximo para el propio titular y la familia, desglosados por hospitalización y consulta externa. Destacan tres clasificaciones de verificación:
HBTNUMCHKKBN— clasificación de verificación del número de clasificación legalKENSNUMCHKKBN— clasificación de verificación del número de verificación (del número de responsable)JKYSKENSNUMCHKKBN— clasificación de verificación del número de verificación del número de beneficiario
Es decir, si se aplica o no la verificación del número es una configuración de la tabla maestra según cada régimen. De hecho, al leer el subprograma de verificación de entrada de gastos públicos cobol/orca12/ORCSP03B.CBL, la comprobación de módulo 10 del número de responsable solo se ejecuta cuando KENSNUMCHKKBN = "1", y el número de beneficiario se trata como una advertencia, no un error (se puede continuar tras confirmar) cuando la clasificación es "3". Como en el número de beneficiario de gastos públicos coexisten, según el municipio, sistemas sin número de verificación, se permite ajustar mediante datos la intensidad de la comprobación. Este diseño, que deja la validación en manos de la tabla maestra en lugar de escribirla directamente en el código, puede considerarse la sabiduría de un sistema de facturación médica que lleva 25 años lidiando con la diversidad de regímenes.
La tabla maestra de aseguradores tbl_hknjainf es la capa del «asegurador». Su clave es el número de centro médico + el propio número de asegurador, y contiene el nombre del asegurador, el código postal, la dirección, el número de teléfono, el símbolo de la tarjeta de asegurado y el régimen al que pertenece (número de seguro) (record/tbl_hknjainf.db). El orden de procesamiento de ORCSP03A.CBL, visto en el capítulo 5, da por supuesta esta estructura de dos capas.
- Si el número de dígitos del número de asegurador no es 4, 6 u 8, es un error inmediato
- Primero se busca en la tabla maestra de aseguradores (
tbl_hknjainf). Si está registrado, quedan fijados el nombre, la dirección, el porcentaje de prestación y el régimen - Si no está registrado, se verifica con módulo 10 (llamando a
ORCSCHKDGT), solo si tiene más de 4 dígitos - Se estima el régimen a partir del número de dígitos y el número de clasificación legal (4 dígitos → Seikan, 6 dígitos → Seguro Nacional de Salud, 8 dígitos → se busca en
tbl_hknnumpor el número de clasificación legal)
En otras palabras, «lo que se puede deducir del sistema de numeración» es solo un mecanismo de respaldo para cuando no está registrado, con una prioridad clara: la fuente de verdad es siempre la tabla maestra. Esta estructura de dos niveles es la respuesta del lado de la implementación al límite señalado en el capítulo 6, «el nombre no se puede saber a partir del número».
Por cierto, el campo HKNJANUM, que contiene el número de asegurador, está definido como PIC X(08) —una cadena de 8 dígitos, no un tipo numérico— y se referencia desde más de 650 fuentes COBOL. Esta elección de tipo evita desde el principio el problema señalado en el siguiente capítulo: si un número que empieza por 0 (como los de clasificación legal 01 a 07) se guardara como número, se perdería el cero inicial.
8. Puntos prácticos para quien construye sistemas que manejan el número
A continuación resumimos los puntos clave al diseñar e implementar sistemas que manejan el número de asegurador (y el número de responsable de gastos públicos, de estructura similar).
- Guárdelo como cadena, no como número. Los números de clasificación legal 01 a 07 empiezan por 0. El accidente clásico en la integración de datos médicos es que, al pasar por Excel, se pierde el cero inicial y el número queda en 7 dígitos. En el lado de incorporación de CSV, diseñe el sistema para detectar y rechazar (o avisar de) «números con dígitos insuficientes».
- Dé por supuestos tres números de dígitos: 4, 6 y 8. Los datos nuevos actuales son de 6 dígitos (Seguro Nacional de Salud) y 8 dígitos, pero en los datos históricos puede existir el número de 4 dígitos del antiguo Seikan (capítulo 5). Que ORCA todavía acepte 4 dígitos hoy es una deferencia a esta historia. Si se normaliza sin más a «8 dígitos fijos, rellenando con ceros», se producen discrepancias al cotejar con datos antiguos o con otros sistemas.
- Aplique la verificación del dígito de control solo a los números que puedan tenerlo. La comprobación M10W21 es potente, pero el antiguo Seikan de 4 dígitos no tiene número de verificación, y en el número de beneficiario de gastos públicos también hay sistemas sin número de verificación. Como hace ORCA, lo más práctico es dejar en la configuración de la tabla maestra «a qué número se le aplica la verificación» y distinguir entre advertencia y error.
- Haga que la bifurcación por número de clasificación legal esté gobernada por la tabla maestra. Si usa el número de clasificación legal para determinar, por ejemplo, el destino de presentación (Fondo de Pago / Kokuhoren), no escriba directamente en el código la tabla de correspondencia entre número de clasificación legal y régimen: guárdela en una tabla maestra. El número de clasificación legal tiene una historia de adiciones por reformas del régimen, y puede seguir aumentando.
- No meta el número de asegurador y el número de responsable de gastos públicos en la misma columna. Aunque la estructura sea igual, son sistemas distintos (capítulo 6). Conviene mantenerlos como campos separados también en el modelo de datos, e incluir «el tipo de número» en la clave de cotejo.
- El número de asegurador sigue vigente incluso en la era de la confirmación de elegibilidad en línea. Con la migración a la tarjeta MyNumber de seguro médico, disminuyen las ocasiones en que hay que prestar atención al símbolo y al número, pero
InsurerNumber(número de asegurador) sigue presente en el XML de consulta y respuesta de la confirmación de elegibilidad en línea, y la determinación del destino de presentación del recibo también sigue basándose en el número de asegurador. Diséñelo dando por supuesto que no es «un número que va a desaparecer pronto», sino que permanecerá como clave fundamental de la información de elegibilidad.
9. Resumen
- El número de asegurador tiene 8 dígitos: 2 de número de clasificación legal + 2 de número de prefectura + 3 de número propio del asegurador + 1 de verificación (solo el Seguro Nacional de Salud tiene 6 dígitos, sin clasificación legal). Con los 2 primeros dígitos se sabe el régimen y el destino de presentación (Fondo de Pago / Kokuhoren); con los 2 siguientes, la prefectura del asegurador.
- El número de verificación final usa el módulo 10 con ponderación 2-1. La ponderación se cuenta desde el extremo derecho; en un número de asegurador de longitud impar, una implementación incorrecta que parta del extremo izquierdo coincide por casualidad, pero falla si se reutiliza en un número de longitud par (como el número de beneficiario de gastos públicos). En el subprograma común de ORCA
ORCSCHKDGT.CBLqueda registrada la corrección de 2001, «el método de la fórmula aritmética pasa a calcularse desde la derecha». - La mayor excepción es el antiguo Seguro de Salud Administrado por el Gobierno. Se operó durante décadas, siempre «por el momento», con 4 dígitos usando una tabla de números de prefectura exclusiva (sin número de clasificación legal ni número de verificación), hasta que se pasó a 8 dígitos con la creación de Kyokai Kenpo en octubre de 2008.
- En el código fuente de ORCA, el rastro de esta excepción sigue vivo en código en producción de 2026: la bifurcación que estima Seikan a partir de 4 dígitos, el proceso de incorporación que reinterpreta como Kyokai Kenpo si son 8 dígitos, y el proceso que reemplaza «政管» por «協会» en el nombre mostrado si la fecha de atención es igual o posterior al 1 de octubre de 2008.
- Lo que se sabe a partir del número llega solo hasta la unidad del asegurador. No se puede saber la persona, el porcentaje de copago ni el nombre del asegurador. El estilo de ORCA —mantener la implementación en dos capas, «tabla maestra del régimen + tabla maestra del asegurador», y limitar la estimación a partir del sistema de numeración a un mecanismo de respaldo para lo no registrado— es aplicable a los sistemas que manejan números en general.
La próxima entrega de la serie está prevista, tal como se anunció al principio, sobre la lógica de verificación y evaluación de los recibos de facturación. Analizaremos, también a partir del código fuente y de materiales públicos, qué examina la verificación de datos dentro del centro médico y qué examina la verificación informática del lado del organismo evaluador y pagador.
10. Referencias
- Directrices de configuración del número de asegurador, el número de responsable de gastos públicos, el número de beneficiario de la asistencia médica con cargo a fondos públicos, y el código de centro médico y el código de farmacia (Ministerio de Salud, Trabajo y Bienestar, versión de marzo de 2008, Anexo 2, PDF) — fuente de la estructura del texto, el procedimiento de cálculo del número de verificación, la tabla de números de clasificación legal (Anexo 1), la tabla de números de prefectura (Anexo 2) y la excepción del Seikan (punto 7 del apartado 1) con su tabla de números exclusiva (Anexo 3)
- Sobre la configuración del número de asegurador, entre otros (circular n.º 34 y n.º 45 de la Agencia, del 7 de agosto de 1976, versión vigente) — normativa vigente que establece el número de asegurador de Kyokai Kenpo por cada sucursal prefectural (circular n.º 0918001 del Departamento de Seguros, del 18 de septiembre de 2008)
- Sobre el número de asegurador - Kyokai Kenpo (Asociación de Seguro de Salud de Japón) — lista vigente de los números de asegurador por cada sucursal prefectural
- Código fuente del núcleo de Nichirese, serie 5.2 (instantánea publicada en julio de 2026):
cobol/common/ORCSCHKDGT.CBL/cobol/orca12/ORCSP03A.CBL/cobol/orca12/ORCSP03B.CBL/cobol/common/ORCSHKNMEI.CBL/cobol/orcabt/ORCVTPTHKNINF.CBL/cobol/orcabt/ORCBG014.CBL/record/tbl_hknnum.db/record/tbl_hknjainf.db, entre otros — todas las descripciones de implementación, historial de modificaciones y definiciones de tablas del cuerpo del artículo se basan en esta instantánea
Artículos relacionados
Artículos recientes con las mismas etiquetas para profundizar en temas cercanos.
¿Dónde se producen el ajuste y la devolución? — Desglosamos la lógica de verificación de recibos de facturación a partir del código fuente de ORCA y los materiales públicos
¿Dónde se ajustan y devuelven los recibos? Analizamos, con código y materiales públicos, la verificación multinivel de ORCA y del organis...
¿Qué cambia la receta electrónica en el sistema de facturación médica? — Cómo aborda ORCA la receta electrónica, leído desde el código fuente
Qué necesita el sistema de facturación médica para la receta electrónica: el diseño de tablas de ORCA, la integración CSV y cómo llega la...
Qué sucede al presentar la tarjeta MyNumber de seguro médico — cómo leer la integración entre la confirmación de elegibilidad en línea y el sistema de facturación médica en el código fuente de ORCA
Cómo llega la información del seguro al sistema de facturación tras la tarjeta MyNumber, según el flujo de elegibilidad en línea y el cód...
ORCA (Nichirese) no es una historia clínica electrónica — la estructura de los sistemas médicos y del sistema de facturación desde la perspectiva de un ingeniero
ORCA (Nichirese) no es una historia clínica electrónica, sino un sistema de facturación médica. Se analiza, desde la perspectiva de un in...
Cómo comprender la arquitectura completa de la API de Nichi-Rece a partir del código fuente — Leyendo el código fuente público de ORCA (con tabla de correspondencias de los 137 endpoints)
La arquitectura completa de la API de Nichi-Rece según el código fuente de ORCA: los 137 endpoints, el caso patientgetv2, el diff entre v...
Temas relacionados
Estas páginas sitúan el tema en un contexto más amplio de servicios y decisiones.
Temas técnicos de Windows
Portal sobre desarrollo de Windows, investigación de fallos y aprovechamiento de activos existentes.
Servicios relacionados con este tema
El artículo está directamente relacionado con los siguientes servicios.
Consultoría técnica y revisión de diseño
El diseño de sistemas de códigos de negocio como el número de asegurador o el número de responsable de gastos públicos, y la definición de la política de validación, es un tema clásico de la consultoría técnica y la revisión de diseño en sistemas de negocio, no solo en el ámbito médico.
Desarrollo de aplicaciones para Windows
Las aplicaciones de negocio de recepción y facturación, que incluyen la verificación de entrada del número de asegurador y el cotejo con la tabla maestra, suelen ejecutarse en equipos Windows dentro del centro médico o de la empresa, lo que entra en el ámbito del desarrollo de aplicaciones Windows.
Preguntas frecuentes
Preguntas habituales en las consultas sobre el tema del artículo.
- ¿Se puede identificar a una persona a partir del número de asegurador?
- No se puede. El número de asegurador identifica únicamente «qué asegurador es» (por ejemplo, tal sucursal de Kyokai Kenpo, tal caja de seguro de salud o el Seguro Nacional de Salud de tal municipio). La identificación de la persona corre a cargo del símbolo y el número de la tarjeta de asegurado (incluido el número de rama de 2 dígitos añadido con la individualización de la confirmación de elegibilidad en línea), que es un campo distinto del número de asegurador.
- ¿Por qué hay tarjetas de seguro con número de asegurador de 6 dígitos y otras de 8 dígitos?
- Porque solo el Seguro Nacional de Salud (excluida la asistencia médica de jubilados) tiene establecido un número de 6 dígitos sin número de clasificación legal (2 dígitos de prefectura + 3 dígitos de número propio + 1 dígito de verificación). El seguro de los trabajadores (Kyokai Kenpo, cajas de seguro de salud, kyosai, etc.), el sistema de atención médica para personas de edad avanzada y la asistencia médica de jubilados del Seguro Nacional de Salud (clasificación legal 67) tienen 8 dígitos, con los 2 dígitos de clasificación legal al principio.
- ¿Qué representa el último dígito del número de asegurador?
- Es el número de verificación (dígito de control). A cada dígito, excepto el último, se le multiplica por 2, 1, 2, 1... empezando por el extremo derecho; cuando el producto tiene 2 dígitos, se separan y se suman por separado; el número de verificación es el resultado de restar a 10 el último dígito de esa suma (si el último dígito es 0, el número de verificación también es 0). Es el llamado método de módulo 10 con ponderación 2-1, y con este único dígito se detecta la mayoría de los errores de entrada.
- ¿Es cierto que el antiguo Kyokai Kenpo (Seguro de Salud Administrado por el Gobierno) tenía un número de asegurador de 4 dígitos?
- Es cierto. Las directrices de configuración del Ministerio de Salud, Trabajo y Bienestar establecían expresamente la excepción de que «el número de asegurador del Seguro de Salud Administrado por el Gobierno será, por el momento, un número de 4 dígitos compuesto por 2 dígitos de prefectura + 2 dígitos de número propio». Además, el número de prefectura no seguía la tabla habitual, sino una tabla exclusiva (Tokio = 21, Osaka = 41, etc.). Con la creación de Kyokai Kenpo en octubre de 2008, se pasó a un número de 8 dígitos por cada sucursal prefectural.
Perfil del autor
Página de presentación del autor del artículo.
Go Komura
Representante de KomuraSoft LLC
Especializado en desarrollo de software para Windows, consultoría técnica e investigación de fallos, sobre todo en proyectos con sistemas existentes y errores difíciles de reproducir.